【问题标题】:running IStateful jobs per machine in a cluster with Quartz.net使用 Quartz.net 在集群中的每台机器上运行 IStateful 作业
【发布时间】:2013-02-08 02:05:59
【问题描述】:

我正在运行一个石英.net 服务集群,所有这些服务都读取标准 AdoJobStore。我正在寻找的行为在标题中进行了解释,我想在集群中的每台机器上运行有状态的作业。目前我相信一个有状态的工作将在整个集群中一次运行一个。我怀疑quartz.net 在集群功能中支持每台机器的这种有状态作业,因为我已经看了很长时间而且很努力,但是还有其他方法可以在quartz.net 中复制这种行为吗?

另一种方法是设置每个作业类型的线程数,而不是当前为每台机器指定线程数的情况,这基本上会给我我正在寻找的行为,那就是能够运行每台机器一次一个特定的作业类型。

有什么建议吗?

【问题讨论】:

    标签: quartz.net


    【解决方案1】:

    如果job的job开始时间不重要,可以试试这些

    您可以根据集群中的机器名称为触发器和作业使用正确的组名称(用于识别),并查看触发器的组名称是否与它正在触发的机器名称相对应(附加触发器侦听器并在 VetoJobExecution 中进行相应的检查如果作业不应该在该机器上运行,则返回 false,否则返回 true)。

    如果同一台机器一次又一次地选择停止的触发器,那么您可以在调度程序上尝试 Standby 和 StartDelayed 来避免这种情况。

    这只是一个建议,我还没有验证它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多