Java 如何保存已执行的作业?

Java 如何保存已执行的作业?,java,jboss,quartz-scheduler,Java,Jboss,Quartz Scheduler,一个问题是,在执行作业后,quartz从数据库qrtz_触发器表中删除作业,但在特定情况下需要重复作业,而该作业失败 是否有任何配置选项或方法在执行后将作业存储到另一个表 谢谢这正是耐用标志的用途。即使没有与作业关联的触发器,持久作业仍在Quartz中注册。另一方面,在没有相关触发器的情况下,Quartz会自动删除非持久性作业(例如,在所有相关触发器触发并被Quartz删除后) 有关详细信息,请参阅。如果您使用的是JDBCJobStore,您的作业存储在类似QRTZ\u JOB\u detail

一个问题是,在执行作业后,quartz从数据库qrtz_触发器表中删除作业,但在特定情况下需要重复作业,而该作业失败

是否有任何配置选项或方法在执行后将作业存储到另一个表


谢谢

这正是耐用标志的用途。即使没有与作业关联的触发器,持久作业仍在Quartz中注册。另一方面,在没有相关触发器的情况下,Quartz会自动删除非持久性作业(例如,在所有相关触发器触发并被Quartz删除后)


有关详细信息,请参阅。

如果您使用的是
JDBCJobStore
,您的作业存储在类似
QRTZ\u JOB\u details
的表中,简单触发器存储在
QRTZ\u simple\u triggers
中,您的cron触发器存储在
QRTZ\u cron\u triggers
中,所有触发器都存储在
QRTZ\u触发器中

如果您希望您的作业是持久的,并且在没有触发器与该作业关联时仍保持不变,则在构建作业详细信息时应调用
storeDurably(true)
。例如:

JobDetail jobDetail = JobBuilder.newJob()
    .ofType(DataMapJob.class)
    .withIdentity("dataJob", "dataJobGroup")
    .storeDurably(true)
    .requestRecovery(true)
    .build();

希望有帮助。

如果作业失败,您可以决定让作业恢复,或者在作业中,失败后,您可以访问计划程序重新安排作业。