Quartz如何在重启之间存储工作细节(关于上次成功运行,失火等)?

时间:2017-07-07 06:08:19

标签: quartz-scheduler quartz.net

从上午9点开始,每小时在Quartz-scheduler中安排一项任务。 申请在上午10点停止,并在下午12点重新开始。在这种情况下,将错过上午10点和上午11点的两次处决。

在调度程序再次启动的情况下,将考虑多少次失火?

由于工作在上午9点执行,因此应考虑从上午10点和上午11点起两次失火。如果是这样,那么当应用程序已经重新启动时,Quartz如何确定最后一个成功的时间表?

1 个答案:

答案 0 :(得分:1)

你问两个问题:

  • 会考虑多少次失火?
    正如您猜测的那样,两次失火(上午10点和上午11点)将被检测到 但是,Quartz可能会或可能不会考虑所有这些:根据每个触发器中配置的失火指令,Quartz可能会决定只考虑最后一次失火,或者全部忽略它们。

  • Quartz如何在重新启动之间存储作业详细信息?
    根据您的配置,Quartz将通过其JDBCJobStore(Java)/ AdoJobStore(.NET)将数据存储在数据库中,或通过其RAMJobStore存储在RAM中。 使用数据库存储时,Quartz会在计划,运行,完成等时保留所有作业详细信息。并在重新启动时从中检索所述细节 使用RAM存储时,Scheduler运行之间不会保留作业信息。如果调度程序停止然后重新启动,则需要再次调度所有作业;此外,不会发现失火。

所有这些都在Quartz's official documentation中解释,我建议您在那里查看更详细的信息。