15

JobDetail.requestsRecovery财产文件说明了以下内容

如果遇到“恢复”或“故障转移”情况,指示调度程序是否应重新执行作业。

现在,什么是“恢复”情况或“故障转移”情况?

它们有何不同?

仅当 JVM 在作业执行期间崩溃时才会发生恢复,还是如果作业执行因异常而失败也会发生?

4

1 回答 1

14

一种“恢复情况”是通用术语,一种恢复情况是“故障转移”。

故障转移是容错系统使用的过程,通常与冗余一起使用(例如集群)。Quartz 在集群中使用并且存在更多Quartz“节点”时使用故障转移。

引用文档

当其中一个节点在执行一项或多项作业期间发生故障时,就会发生故障转移。当一个节点发生故障时,其他节点会检测该状况并识别数据库中故障节点中正在进行的作业。任何标记为恢复的作业(在 JobDetail 上具有“requests recovery”属性)将由其余节点重新执行。

恢复情况是产生“硬关机”的每一种情况(即它在崩溃中运行的进程,或者机器被关闭)。


回答你的第二个问题:

  • 如果 JVM 在作业执行期间崩溃 > Quartz 将恢复作业

    (因为crash是Recovery的情况)

  • 如果作业因为异常而失败 > Quartz 不会恢复作业

    (因为异常不是硬关机,所以会引发失火

请参阅答案以激活您的工作恢复。

于 2013-10-09T11:17:15.387 回答