发现mariadb数据库时间晚了12个小时,xxljob定时任务调度异常

一  问题描述

当前时间是2022年6月27日11:32,但是我在数据库里查当前时间却比现在晚了12个小时:

SELECT NOW();

2022-06-26 23:30:51

发现时区是美国时区(EDT),非中国时区:

xxljob定时任务提前12个小时执行了,示例:

应该是在晚上23点执行的,但却在中午11点执行了:

 

二 排查思路

看下操作系统的时区是什么(执行date命令),如果操作系统的时区不对,那数据库里的时区也不会对。

需要修改下操作系统时区(请参考linux CST与EDT时区互转_雅冰石的博客-CSDN博客),然后重启下数据库。

若不想重启线上数据库,也可以通过执行命令:

SET  global time_zone = '+8:00';

只是set命令仅对新建连接生效,不会改变已有连接的。
所以之前连接还是之前的时间,我建议最好是在晚上重启下数据库(不用set global,直接重启数据库就行)

在改完数据库时区后,重启了xxljob,发现xxljob定时任务还是有问题。

于是尝试修改了其中三条异常数据,想着观察下效果,没问题的话,第二天再改所有的。

修改方法:

修改trigger_last_time和trigger_next_time,将其往后加12个小时:

UPDATE xxl_job_info SET trigger_last_time=(trigger_last_time+12*60*60*1000),trigger_next_time=(trigger_next_time+12*60*60*1000)
WHERE ……

第二天看着正常了,奇怪的是,其他异常的,我也没手动改,第二天也变正常了。

难道是自动清理了xxljob的缓存什么的?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值