爲什麼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)可以愈來愈好!產品

相關文章
相關標籤/搜索