为什么EasyScheduler升级v1.1.0后定时任务不调度执行?

1、背景

EasyScheduler升级v1.1.0后,进行任务测试,发现只能调度执行新的定时任务,而不能调度旧的定时任务。html

2、那么问题来了

到底是哪里出问题了?apache

  • 1.个人操做步骤出现了bug?
  • 2.EasyScheduler官方的升级脚本有问题?

然而,从v1.0.3升级到v1.1.0彻底是按照https://dolphinscheduler.apache.org/en-us/docs/release/upgrade.html官方手册进行操做的,因此操做步骤确定没有问题。markdown

通过和EasyScheduler负责人沟通后,肯定是升级程序的一个bug,使得定时任务ID和定时触发器关联失败,致使旧的定时任务没法被调度。测试

那么问题发现了,该如何快速解决呢?有遇到一样问题的朋友,给出了一种方案,先手动下线定时器而后再手动上线便可恢复。可是这个显然不可行,上千个任务如何进行手动操做?可是为了确认有效性,经过测试了一个后,发现依然无效。最终pass该种方案。spa

通过分析,发现EasyScheduler调度定时任务主要用到的表为qrtz_cron_triggers,qrtz_job_details,qrtz_triggers。 解决方案也不麻烦,既然都关联错误了,那么直接所有清除上述三个表中数据,而后写个脚本程序,把全部项目工做流定时器进行下线再上线便可自动补全数据,这是目前最快速的解决方案。而官方修复该bug须要等到下一个版本发布,因为EasyScheduler贡献给了apapche,第一个版本还须要等待2~3个多月才能发版,因此等待不是最佳选择。code

3、总结

  • 不要过度相信未经大量考研的开源产品,由于开源产品也和公司内部平台或者程序同样,都只是一套研发系统,须要通过千锤万打,才能方得始终orm

  • 既然使用某个开源产品,就要知己知彼,方能百战不殆定位各类问题以及快速得出最佳解决方案htm

  • 有一个为开源作贡献的心,每一个平台起步都是艰辛的,须要咱们的支持和滋养工作流

最后,但愿EasyScheduler(如今的DolphinScheduler)可以愈来愈好!产品

相关文章
相关标签/搜索