JobDetail.requestsRecovery
财产文件说明了以下内容
如果遇到“恢复”或“故障转移”情况,指示调度程序是否应重新执行作业。
现在,什么是“恢复”情况或“故障转移”情况?
它们有何不同?
仅当 JVM 在作业执行期间崩溃时才会发生恢复,还是如果作业执行因异常而失败也会发生?
JobDetail.requestsRecovery
财产文件说明了以下内容
如果遇到“恢复”或“故障转移”情况,指示调度程序是否应重新执行作业。
现在,什么是“恢复”情况或“故障转移”情况?
它们有何不同?
仅当 JVM 在作业执行期间崩溃时才会发生恢复,还是如果作业执行因异常而失败也会发生?
一种“恢复情况”是通用术语,一种恢复情况是“故障转移”。
故障转移是容错系统使用的过程,通常与冗余一起使用(例如集群)。Quartz 在集群中使用并且存在更多Quartz“节点”时使用故障转移。
引用文档:
当其中一个节点在执行一项或多项作业期间发生故障时,就会发生故障转移。当一个节点发生故障时,其他节点会检测该状况并识别数据库中故障节点中正在进行的作业。任何标记为恢复的作业(在 JobDetail 上具有“requests recovery”属性)将由其余节点重新执行。
恢复情况是产生“硬关机”的每一种情况(即它在崩溃中运行的进程,或者机器被关闭)。
回答你的第二个问题:
如果 JVM 在作业执行期间崩溃 > Quartz 将恢复作业
(因为crash是Recovery的情况)
如果作业因为异常而失败 > Quartz 不会恢复作业
(因为异常不是硬关机,所以会引发失火)
请参阅此答案以激活您的工作恢复。