从上午9点开始,每小时在Quartz-scheduler中安排一项任务。 申请在上午10点停止,并在下午12点重新开始。在这种情况下,将错过上午10点和上午11点的两次处决。
在调度程序再次启动的情况下,将考虑多少次失火?
由于工作在上午9点执行,因此应考虑从上午10点和上午11点起两次失火。如果是这样,那么当应用程序已经重新启动时,Quartz如何确定最后一个成功的时间表?
答案 0 :(得分:1)
你问两个问题:
会考虑多少次失火?
正如您猜测的那样,两次失火(上午10点和上午11点)将被检测到
但是,Quartz可能会或可能不会考虑所有这些:根据每个触发器中配置的失火指令,Quartz可能会决定只考虑最后一次失火,或者全部忽略它们。
Quartz如何在重新启动之间存储作业详细信息?
根据您的配置,Quartz将通过其JDBCJobStore
(Java)/ AdoJobStore
(.NET)将数据存储在数据库中,或通过其RAMJobStore
存储在RAM中。
使用数据库存储时,Quartz会在计划,运行,完成等时保留所有作业详细信息。并在重新启动时从中检索所述细节
使用RAM存储时,Scheduler运行之间不会保留作业信息。如果调度程序停止然后重新启动,则需要再次调度所有作业;此外,不会发现失火。
所有这些都在Quartz's official documentation中解释,我建议您在那里查看更详细的信息。