SpringBoot Schedule定时任务不断重复运行 日志Log不断重复输出的问题解决

今天在做完一个自动同步DB到ES的工作后,组长发现本地跑都会不断输出我那边代码的任务日志,让我查查源头。


我跑了一下发现我那块代码日志输出不间断,并且有时候会出现连续两个相同的Log。

因为每次开始输出Log时,都会提示一句 TaskExecutor 信息,我还以为是线程的问题,看了半天也没有用到线程;看组长的代码用到了线程池,但是我的也并不需要线程池。

因为我用到了Schedule定时器,打算配置每5分钟跑一次,所以cron表达式设置为:

* 0/5 * * * ?

但是在跑的时候发现,每跑到第5分钟时,这一分钟内都会不断输出Log,这让我很头疼。我把代码中添加了自定义的Log Info,发现也是不断输出,这说明我的代码被不断调用。

突然我想到,是不是我的定时器出现了问题?

随即我在【在线Cron表达式生成器】这上面,设置了每5分钟,乍一看cron好像一样,但是仔细一看:

0 0/5 * * * ?

原来如此!

我的秒位原来是 * 号,即匹配了所有秒,每秒都会运行一次!

将秒位改为0,就是每小时的 5 的倍数分钟第 0 秒运行一次!

用【在线Cron表达式生成器】显示的最近时间就是:

2019/8/22 15:35:00
2019/8/22 15:40:00
2019/8/22 15:45:00
2019/8/22 15:50:00
2019/8/22 15:55:00

终于解决了这个问题!

你可能感兴趣的:(SpringBoot,Schedule,问题解决,SpringBoot,Schedule,cron表达式)