Springboot项目配置定时重启案例
一、如果是Linux环境
1)、编写重启脚本timeRestart.sh,内容如下:
#! /bin/bash
export LANG="en_US.UTF-8"
export JAVA_HOME=/usr/local/java/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
JOB_JAR=/home/runtime/job
echo "【`date +%Y-%m-%d_%H:%M:S`】开始关闭hospital_job-1.0.0.jar"
pid=`ps -ef | grep hospital_job-1.0.0.jar |grep -v grep | awk '{print $2}'`
out=`kill -9 ${pid}`
echo "【`date +%Y-%m-%d_%H:%M:S`】关闭hospital_job-1.0.0.jar成功"
echo "【`date +%Y-%m-%d_%H:%M:S`】开始启动hospital_job-1.0.0.jar"
nohup java -jar $JOB_JAR/hospital_job-1.0.0.jar &
echo "【`date +%Y-%m-%d_%H:%M:S`】启动hospital_job-1.0.0.jar成功"
2)、配置系统定时任务:
首先:crontab -e 添加如下内容
时间规则说明:
crontab [选项] 定时任务设置
1、crontab -e 编辑crontab定时任务
2、crontab -l 查询crontab任务
3、crontab -r 删除当前用户所有的crontab任务
4、*/1 * * * * ls -l /etc > /tmp/to.txt
第一*:一个小时当中的第几分钟 0-59
第二*:一天当中的第几小时 0-23
第三*:一个月中的第几天 1-31
第四*:一年中的第几个月 1-12
第五*:一周当中的星期几 0-7(0和7都代表星期天)
*代表任何时间。
,代表不连续的时间 。0 8,12,16 * * *,代表每天8点0分,12点0分,16点0分
-代表连续的时间范围。0 5 * * 1-6 ,代表周一到周六的凌晨5点0分执行命令
*/n代表每隔多久执行一次。*/10 * * * * ,代表每隔10分钟就执行一次命令
然后重启任务调度
service crond restart
3)、检查是否配置成功:
一分钟后(按实际配置时间为准)检查进程pid是否变化,发生变化则表示重启成功
二、如果是Win环境
1)、安装AlwaysUp
2)、编写springboot项目启动脚本job.bat
java -jar hospital_job-1.0.0.jar
导入启动脚本到AlwaysUp,设置宕机立即重启
3)、编写killjob.bat用于定时杀死job项目,当job项目被杀死后启动脚本会立即重启
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-5" %%a in ('netstat -ano ^| find ":9005"') do (
if "%%e%" == "" (
set pid=%%d
) else (
set pid=%%e
)
echo !pid!
taskkill /f /pid !pid!
)
exit
4)、配置定时杀死项目,即配置项目重启时间
5)、验证是否成功
重启前pid为7496:
重启后pid为6896:
还没有评论,来说两句吧...