爲何EasyScheduler升級v1.1.0後定時任務不調度執行?

一、背景

EasyScheduler升級v1.1.0後,進行任務測試,發現只能調度執行新的定時任務,而不能調度舊的定時任務。

二、那麼問題來了

究竟是哪裏出問題了?

  • 1.我的操作步驟出現了bug?
  • 2.EasyScheduler官方的升級腳本有問題?

然而,從v1.0.3升級到v1.1.0完全是按照https://dolphinscheduler.apache.org/en-us/docs/release/upgrade.html官方手冊進行操作的,所以操作步驟肯定沒有問題。

經過和EasyScheduler負責人溝通後,確定是升級程序的一個bug,使得定時任務ID和定時觸發器關聯失敗,導致舊的定時任務無法被調度。

那麼問題發現了,該如何快速解決呢?有遇到同樣問題的朋友,給出了一種方案,先手動下線定時器然後再手動上線即可恢復。但是這個顯然不可行,上千個任務如何進行手動操作?但是爲了確認有效性,通過測試了一個後,發現依然無效。最終pass該種方案。

經過分析,發現EasyScheduler調度定時任務主要用到的表爲qrtz_cron_triggers,qrtz_job_details,qrtz_triggers
解決方案也不麻煩,既然都關聯錯誤了,那麼直接全部清除上述三個表中數據,然後寫個腳本程序,把所有項目工作流定時器進行下線再上線即可自動補全數據,這是目前最快速的解決方案。而官方修復該bug需要等到下一個版本發佈,由於EasyScheduler貢獻給了apapche,第一個版本還需要等待2~3個多月才能發版,所以等待不是最佳選擇。

三、總結

  • 不要過分相信未經大量考研的開源產品,因爲開源產品也和公司內部平臺或者程序一樣,都只是一套研發系統,需要經過千錘萬打,才能方得始終

  • 既然使用某個開源產品,就要知己知彼,方能百戰不殆定位各種問題以及快速得出最佳解決方案

  • 有一個爲開源做貢獻的心,每個平臺起步都是艱辛的,需要我們的支持和滋養

最後,希望EasyScheduler(現在的DolphinScheduler)能夠越來越好!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章