Quartz 获取已完成作业列表

Ali*_*ahi 8 spring triggers quartz-scheduler

在 Quartz 2.2 版中,我们如何才能找到工作是否完成以及何时完成?!我有job key

首先,我尝试获取作业触发器并查看触发器状态。

List<? extends Trigger> triggers = sched.getTriggersOfJob(jobKey);
for (Trigger trigger : triggers) {
   ....

}
Run Code Online (Sandbox Code Playgroud)

但是我发现当触发器成功完成时,quartz 会从数据库中删除作业触发器。

我用谷歌搜索了一个http://forums.terracotta.org/forums/posts/list/6791.page

Quartz 会清理自己所有未使用的数据,这样管理员就不必删除填满数据库的记录(许多用户有数百万个触发器重复触发。保留所有这些数据是不切实际的,而且会影响性​​能)。

如果您想要触发器触发的历史记录,请实现 TriggerListener 并自己记录信息,就像 LoggingTriggerHistoryPlugin 所做的那样。

Quartz 2.2 可能会添加一个带有新 api 的历史功能来检索数据。

在另一方面,我检讨石英码(http://www.quartz-scheduler.org/api/2.2.1/org/quartz/Trigger.CompletedExecutionInstruction.html),并发现触发状态可以设置为NOOPRE_EXECUTE_JOBSET_TRIGGER_COMPLETE, DELETE_TRIGGER, SET_ALL_JOB_TRIGGERS_COMPLETE, SET_TRIGGER_ERROR,SET_ALL_JOB_TRIGGERS_ERROR

我认为这个枚举用于失败的触发器,但我想知道是否有办法让触发器持久化。