【问题标题】:quartz jobDetail requestRecovery石英作业详细请求恢复
【发布时间】:2013-10-16 12:44:09
【问题描述】:

JobDetail.requestsRecovery 属性的文档说明如下

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

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

它们有何不同?

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

【问题讨论】:

    标签: quartz-scheduler fault-tolerance


    【解决方案1】:

    Recovery situation”是通用术语,一种恢复情况是“fail-over”。

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

    引用 documentation:

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

    恢复情况是产生“硬关机”的所有情况(即,它正在运行的进程崩溃,或机器关闭)。


    回答你的第二个问题:

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

      (因为crash是Recovery的情况)

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

      (因为异常不是硬关机,所以会抛出misfire

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

    【讨论】:

      猜你喜欢
      • 2018-03-06
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 2011-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多