quartz對任務超時和misfire的處理

2021-08-26 04:05:32 字數 381 閱讀 6731

quartz有個全域性的引數misfirethreshold設定可以允許的超時時間,超過了就不執行,未超過就執行。

比如設定了misfirethreshold=30分鐘,如果乙個任務定時在10:30執行,但在10:29伺服器掛了,在10:50啟動,雖然任務超時了21分鐘,但小於misfirethreshold,所以還是可以執行。而如果伺服器11:10才啟動,那就misfire了。

對於週期性的任務,如果有misfire的情況出現,則會自動更新crontrigger的時間週期

預設情況下會在當前時間馬上執行前乙個被misfire的任務

而如果設定misfire_instruction_do_nothing,則不對misfire的任務做特殊處理,只從當前時間之後的下一次正常排程時間開始執行

quartz任務並行

任務有並行和序列之分,並行是指 乙個定時任務,當執行時間到了的時候,立刻執行此任務,不管當前這個任務是否在執行中 序列是指 乙個定時任務,當執行時間到了的時候,需要等待當前任務執行完畢,再去執行下乙個任務。quartz框架中防止任務並行可以有兩種方案 1 如果是 通過methodinvokingjo...

quartz石英任務

定時任務 quartz 的幾大核心概念 job 任務 我們需要完成的事情 要炸大本營 jobdetail 任務詳情 任務怎麼做,誰來做 執行任務需要的物件,資料資訊等 張三,50噸tnt quartz 為了併發執行 job 定義任務怎麼執行的類 jobdetail 當次執行的例項 trigger 觸...

Quartz任務執行

quartz任務排程器,有個很憂傷的限制,就是提交的任務只能指定job class型別,具體job的例項例項化有quartz來建立,且任務每次執行都會建立乙個job例項,在某些場景下,我們可能需要傳遞乙個job例項 比如job的屬性有其他方式注入 那麼直接使用quartz則不太能滿足,我們需要借助d...