【问题标题】:Sling scheduler periodic job -- will the job overlap?吊索调度程序定期作业——作业会重叠吗?
【发布时间】:2012-09-05 03:22:45
【问题描述】:

我正在使用 Sling 的调度程序来安排定期作业,我想知道我是否正在安排作业 A 每 5 分钟运行一次。在不太可能的情况下,作业开始运行并耗时超过 5 分钟会发生什么情况?我已指定作业不能并行运行。

  1. 作业 A 将在上一次运行完成后立即再次运行。
  2. 作业 A 将在上一次运行完成后 5 分钟运行。

在底层,Sling 的调度程序使用的是 QuartzScheduler,所以如果您知道 QuartzScheduler 在这种情况下的行为方式,请也分享您的知识。

非常感谢任何帮助!

【问题讨论】:

    标签: java quartz-scheduler sling


    【解决方案1】:

    在 Quartz Scheduler 2.1.x 中,annotation DisallowConcurrentExecution 用于防止同一个 Job 的并发执行。

    在 Quartz Scheduler 2.0.x 中,为了使 Job 的并发执行无效,您必须实现 StatefulJob interface

    决定是在前一个作业完成时执行失败的执行还是将其忽略取决于触发器的失败政策。默认情况下,当调度程序启动时,它会搜索所有未触发的持久触发器,然后根据其单独配置的错误触发指令更新每个触发器。

    所以在我看来,作业 A 将在前一次运行完成后立即再次运行。我想 Sling 使用默认的失火策略。否则答案取决于失火策略选择。

    这就是 Quartz Scheduler 的工作原理。我不知道 Sling 的调度程序是如何工作的。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      • 2017-07-15
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多