【问题标题】:Conditional Job Chaining in Quartz.NETQuartz.NET 中的条件作业链
【发布时间】:2016-10-24 18:27:10
【问题描述】:

假设我有两个作业 A 和 B。它们都以不同的时间间隔执行,最终可能会重叠。例如,如果 A 每 10 秒执行一次,B 每 15 秒执行一次,那么它们每 30 秒执行一次。

我想确保如果他们的执行最终是一致的,那么作业 A 总是首先发生。

我正在尝试确定一种在 Quartz.NET (2.x) 中进行设置的好方法,但如果有任何见解,我将不胜感激。

【问题讨论】:

    标签: c# scheduling quartz.net job-scheduling


    【解决方案1】:

    您可以使用ITriggerListener 并实现方法VetoJobExecution。 更多信息可以找到here

    【讨论】:

      【解决方案2】:

      事实证明,你可以在 Triggers 上设置一个优先级值,这样如果它们的触发时间相同,则优先执行最高优先级的 Trigger。

      见:http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/more-about-triggers.html

      【讨论】:

      • 这不会解决您的问题。它仅在您有 2 个作业并且将 TaskPool 减少到 1 时才有效。当您有许多作业并且其中一些比其他作业更重要时,需要设置优先级。如果需要第三个作业,但该作业独立于其他两个作业,并且无论作业是否运行都必须执行,您会怎么做?
      • 你是对的。我刚刚设置了一个互斥锁来阻止有问题的作业,但我仍然需要确保作业 A 先触发。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多