使用Quartz.net在集群中为每台机器运行IStateful作业

时间:2013-02-06 09:24:01

标签: quartz.net

我正在运行所有阅读标准AdoJobStore的quartz.net服务集群。我正在寻找的行为在标题中解释,我想在群集中为每台机器运行有状态作业。目前,我认为有状态的工作将一次一个地运行整个集群。我怀疑quartz.net在群集功能方面支持每台机器的这个有状态的工作,因为我看起来很长很难,但有没有其他方法可以在quartz.net中复制这种行为?

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

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果工作的工作开始时间并不重要,您可以尝试这些

你可以使用适当的组名来触发&基于群集中的计算机名称(用于标识)的作业,并查看触发器的组名是否与其正在触发的计算机名相对应(附加触发器侦听器并在VetoJobExecution中进行相应的检查,如果不应在该位置运行作业,则返回false机器,否则返回true)。

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

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