执行作业后,一个问题是石英从数据库qrtz_triggers表中删除作业,但在特定情况下需要重复失败的作业。
执行???
后是否有任何配置选项或方法将作业存储到另一个表由于
答案 0 :(得分:4)
如果您使用的是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();
希望它有所帮助。
答案 1 :(得分:3)
这正是持久旗帜的用途。即使没有与工作相关的触发器,Quartz中仍然会记录持久的工作。另一方面,Quartz会自动删除非持久性作业,其中没有关联的触发器(例如,在触发所有关联的触发器并且已被Quartz删除之后)。
有关详情,请参阅JobDetailImpl javadoc。