2017-03-01 99 views
1

我們需要通過只訪問數據庫來監控石英作業的狀態。石英是否提供了一種方法來實現這一點?石英狀態作業報告

閱讀文檔,在Trigger類中我們有TriggerState,它定義了各種狀態,其中包括ERROR和COMPLETE。

但是在正常執行期間,CompleteExecutionInstruction始終是NOOP。如果我拋出異常或完全執行,這並不重要。如果我成功了,我期待像COMPLETE這樣的東西,或者如果我拋出異常,我會期待ERROR。

有沒有人有這方面的經驗?

回答

1

觸發器狀態決不會反映您作業的上一次執行狀態,因此您無法指望觸發器狀態爲COMPLETE或ERROR。

如果你想監視你的工作,我建議你看看石英JobListener接口。此接口允許您截取並處理您可能感興趣的所有作業執行事件。例如,您可能需要實現一個作業偵聽器,將截獲的作業執行事件存儲在數據庫中,然後可以查詢此數據庫以獲取上一份作業執行狀態等。

您還可以考慮使用現有的Quartz調度程序,作業和觸發器管理和監視工具。我是QuartzDesk的原作者,這是其中一種工具。 QuartzDesk是一個完全非侵入式的工具,不需要你以任何方式修改你的應用程序代碼,它可以與所有類型的Java應用程序和幾乎所有的Quartz版本一起工作。有一個public online demo,你可以註冊,嘗試自己看看,如果該工具滿足您的要求。當涉及到監控時,QuartzDesk GUI會在每個作業和觸發器旁邊顯示一個所謂的健康指示器。該指標描述了最近10次作業/觸發器執行的狀態(成功,錯誤,否決),因此您可以快速查看最近是否有任何失敗的作業等。您還可以訪問個別作業的完整執行歷史並觸發。如果您想要收到任何與作業執行相關的事件的通知,您可以創建一個執行通知規則,當配置的條件爲時,會向您發送通知消息(IM,SMS,電子郵件,Slack,HipChat,SNMP陷阱...)滿足。我附上了顯示作業健康指示器和所選作業執行歷史的GUI屏幕截圖。

QuartzDesk GUI