您的位置:首页 > 编程语言 > Java开发

解决修改系统时间后Spring 定时任务不执行

2017-08-02 19:04 1891 查看
Spring 定时任务不执行
事情起因是这样的,我们有一个阿里云RDS慢SQL日志明细邮件预警服务,每隔半小时要统计最新半小时内的慢SQL日志明细。
@Scheduled(cron = "0 0,30 8-23 * * *")
public void someMethod(){***}

由于种种原因,昨晚上这台服务器被关机了,今早才重启。
又因为定时任务服务没有加入开机重启。
机器重启后,只能手动重新启动定时任务服务。
然而这时候发现机器重启后,我们的服务运行不正常。
aliyun rds api服务要求,客户端发过来的请求时间延迟不能太大。
显然,我们的服务器系统时间和北京时间相差10个小时,肯定会被阿里云RDS服务以不安全拒绝。
于是乎,我使用date -s 10:35:35 设置和北京时间保持一致。
本以为这样,时间已经一致了,这下总可以定时预警了吧!
可是等了好几个小时,依然没有收到预警邮件。
于是查看系统日志,系统日志一切正常,只是没有定时任务执行的log日志。
奇了个怪,服务正常启动,但定时任务没有执行。
然而昨天还在跑的服务,就因为一次关机,就over了?
不可能,于是关掉服务再次重启。
定时任务执行成功了,于是得出结论: 服务器系统时间改变后,Spring 定时任务将失效。

服务器系统时间改变后,Spring 定时任务将失效,解决方法就是:重启服务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息