我是靠谱客的博主 还单身戒指,最近开发中收集的这篇文章主要介绍Spring自带定时器quartz重跑问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、场景描述

公司系统需要增加一些定时任务,最开始是每个定时任务都配置一个专用的调度工厂、触发器等等。后来公司项目越来越大,需要配置的定时任务越来越多,定时任务的时间策略等需要变动的时候必须修改配置。这些问题越来越多,于是就建表,写了个专门扫表获取相关定时任务的触发器。除了这个之外别的触发器通通配置在表里。

二、问题与调试

1、某天报生产问题,业务报表出错,经查,发现是报表的定时任务重复执行的原因。把附近日志打印输出,无异常发生。

2、去询问技术是否有改动数据库的定时任务时间策略,得到信息,有同事更改过另一个定时任务的时间策略。但并不会造成重跑

3、在测试环境启动各定时任务,随机更改某一个批的时间策略。写了一个监控执行次数的脚本,经过数据对比发现当时间策略改变的时候,偶尔会随机造成某个定时任务重复执行。原因找到了

4、google之,只搜索到只言片语。

三、问题解决方法

第一种:每次更改时间策略的时候尽量保证定时任务不与数据库交互信息

第二种:每次更改后重启

第三种:代码逻辑可以重跑

四、补充

    除了上述原因外,要注意触发器名称,调度工厂名称是否重复,如果重复也会发生上述问题

最后

以上就是还单身戒指为你收集整理的Spring自带定时器quartz重跑问题的全部内容,希望文章能够帮你解决Spring自带定时器quartz重跑问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部