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