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

来源:互联网 发布:黑河教务网络管理系统 编辑:程序博客网 时间:2024/06/05 07:20

Spring 定时任务不执行

事情起因是这样的,我们有一个阿里云RDSSQL日志明细邮件预警服务,每隔半小时要统计最新半小时内的慢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 定时任务将失效,解决方法就是:重启服务。