在Quartz 2.2版中,我们如何找到作业是否完成以及何时完成?!我有job key
。
首先,我尝试获取作业触发器并查看触发状态。
List<? extends Trigger> triggers = sched.getTriggersOfJob(jobKey);
for (Trigger trigger : triggers) {
....
}
但是我发现当触发器成功完成时,quartz会从数据库中删除作业触发器。
我用Google搜索了http://forums.terracotta.org/forums/posts/list/6791.page
Quartz清理所有未使用的数据,以便管理员使用 没有必要删除填满数据库的记录(许多用户 有数百万个触发器反复射击。这是不切实际的 性能 - 阻碍所有数据的存在。)
如果您想了解触发器何时触发的历史记录,请执行a TriggerListener并自己记录信息,就像 LoggingTriggerHistoryPlugin可以。
Quartz 2.2可能会为新的api添加历史记录功能 检索数据。
另一方面,我查看了石英代码(http://www.quartz-scheduler.org/api/2.2.1/org/quartz/Trigger.CompletedExecutionInstruction.html)并发现触发状态可以设置为NOOP
,RE_EXECUTE_JOB
,SET_TRIGGER_COMPLETE
,{{1 }},DELETE_TRIGGER
,SET_ALL_JOB_TRIGGERS_COMPLETE
,SET_TRIGGER_ERROR
我认为这个枚举用于失败的触发器,但是我想知道是否有办法让Trigger持续存在。