EasyScheduler升级v1.1.0后,进行任务测试,发现只能调度执行新的定时任务,而不能调度旧的定时任务。html
到底是哪里出问题了?apache
然而,从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
不要过度相信未经大量考研的开源产品,由于开源产品也和公司内部平台或者程序同样,都只是一套研发系统,须要通过千锤万打,才能方得始终orm
既然使用某个开源产品,就要知己知彼,方能百战不殆定位各类问题以及快速得出最佳解决方案htm
有一个为开源作贡献的心,每一个平台起步都是艰辛的,须要咱们的支持和滋养工作流
最后,但愿EasyScheduler(如今的DolphinScheduler)可以愈来愈好!产品