我想保留Quartz調度程序調度的作業歷史記錄,其中包含以下屬性:'開始時間','結束時間','成功','錯誤」。如何使用Quartz調度程序來維護作業歷史記錄
有兩個接口可用於此:ITriggerListener
和IJobListener
(我正在使用C#接口的命名約定,因爲我使用的是Quartz.NET,但可能會要求提供Java版本的相同問題)。
IJobListener
有一個JobToBeExecuted
和一個JobWasExecuted
方法。後者提供JobExecutionException
,以便您知道何時出現問題。但是,無法關聯JobToBeExecuted
和JobWasExecuted
。假設我的工作運行了十分鐘。我從t0
和t0+2
開始(因此它們重疊)。我收到兩個電話JobToBeExecuted
,並將兩個開始時間插入我的歷史記錄表中。當這兩項工作完成t1
和t1+2
我得到兩個電話JobWasExecuted
。我如何知道每次調用中要更新的數據庫記錄(用相應的開始時間存儲結束時間)?
ITriggerListener
還有另一個問題。當作業失敗時,無法在TriggerComplete
方法中發現任何錯誤。
我該如何獲得理想的行爲?
你有什麼想法,我能找到這樣關鍵? – 2010-06-02 13:49:23
當前的關鍵是JobGroup,JobName和日期和時間。看來2.0版本中會出現更好的關鍵。 – 2011-07-15 12:44:04