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

终于解决了这个问题!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值