一個問題,在執行作業之後,石英從數據庫qrtz_triggers表中刪除作業,但在特定情況下需要重複失敗的作業。如何保存Quartz執行的作業?
是否有任何配置選項或方法在執行後將作業存儲到另一個表中?
謝謝
一個問題,在執行作業之後,石英從數據庫qrtz_triggers表中刪除作業,但在特定情況下需要重複失敗的作業。如何保存Quartz執行的作業?
是否有任何配置選項或方法在執行後將作業存儲到另一個表中?
謝謝
如果使用JDBCJobStore
,你的作業存儲在一個表像QRTZ_JOB_DETAILS
,和你簡單的觸發器都存儲在QRTZ_SIMPLE_TRIGGERS
,您的cron trigers存儲在QRTZ_CRON_TRIGGERS
,以及所有觸發器都存儲在QRTZ_TRIGGERS
。
如果您希望自己的工作持久耐用,並且在沒有觸發器與工作關聯時仍然存在,則在構建JobDetail時應該致電storeDurably(true)
。例如:
JobDetail jobDetail = JobBuilder.newJob()
.ofType(DataMapJob.class)
.withIdentity("dataJob", "dataJobGroup")
.storeDurably(true)
.requestRecovery(true)
.build();
希望它有幫助。
謝謝,它是有用的 – 2014-09-03 16:14:54
這正是持久標誌的用途。即使沒有與工作相關的觸發器,Quartz中也會保留持久的工作。另一方面,Quartz會自動刪除非持久作業,因爲沒有關聯的觸發器(例如在所有關聯的觸發器被觸發並被Quartz刪除後)。
有關詳細信息,請參閱JobDetailImpl javadoc。
謝謝,這是有益的 – 2014-09-03 16:15:20
如果您的工作失敗,您可以決定將工作恢復或工作,失敗後,您可以訪問計劃程序以重新計劃工作。 – 2014-09-02 18:31:55