如何保存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