使用Quartz.net在群集中为每台机器运行一个临时作业

使用Quartz.net在群集中为每台机器运行一个临时作业,quartz.net,Quartz.net,我正在运行一组quartz.net服务,所有这些服务都是标准AdoJobStore的读物。我要寻找的行为在标题中有解释,我想在集群中的每台机器上运行有状态的作业。目前,我相信一个有状态的作业将为整个集群一次运行一次。我怀疑quartz.net是否支持集群功能中每台机器的有状态作业,因为我已经仔细研究了很久,但是有没有其他方法可以在quartz.net中复制这种行为 另一种方法是设置每种作业类型的threadcount,而不是当前每台机器指定threadcount的情况,这将基本上提供我正在寻找的

我正在运行一组quartz.net服务,所有这些服务都是标准AdoJobStore的读物。我要寻找的行为在标题中有解释,我想在集群中的每台机器上运行有状态的作业。目前,我相信一个有状态的作业将为整个集群一次运行一次。我怀疑quartz.net是否支持集群功能中每台机器的有状态作业,因为我已经仔细研究了很久,但是有没有其他方法可以在quartz.net中复制这种行为

另一种方法是设置每种作业类型的threadcount,而不是当前每台机器指定threadcount的情况,这将基本上提供我正在寻找的行为,即能够每台机器一次运行一个特定的作业类型


有什么建议吗?

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

您可以基于集群中的机器名(用于标识)为触发器和作业使用适当的组名,并查看触发器的组名是否对应于它所触发的机器名(连接一个触发器侦听器,并在VetoJobExecution中进行相应的检查,如果不应在该机器中运行作业,则返回false,否则返回true)

如果停止的触发器被同一台机器一次又一次地拾取,那么您可以尝试在调度程序上延迟待机和启动以避免这种情况

这只是一个建议,我还没有证实