quartz TRIGGER_STATE變為ERROR解決方法


今天,項目組一個同事說開發環境一直正常quartz定時任務今天不跑了,因為異常已經封裝了,所以應該不是沒有捕獲異常導致。也檢查了JobDetail肯定沒有重復的任務,最后檢查qrtz_triggers表的時候,發現TRIGGER_STATE為ERROR了,照理應該是PAUSED或者WAITING,網上搜了下,應該不是版本的問題,而是多個開發本地環境的定時任務配置不一致所致。通知其他開發將配置文件quartz.autoStartup從true改為false,並人工重置了定時任務為PAUSED后,恢復正常。TRIGGER_STATE的狀態包括如下:

WAITING:等待  
PAUSED:暫停 
ACQUIRED:正常執行 
BLOCKED:阻塞 
ERROR:錯誤

建議:使用quartz配置定時任務,多台服務器使用同一數據庫進行開發時,保證數據庫qrtz_scheduler_state(任務調度表)中只有一條數據,這樣就能保證定時任務是自己的應用服務取走執行的。

站在巨人肩膀上摘蘋果

https://blog.51cto.com/zhjh256/3139033


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM