将Quartz作业限制为特定工作者

时间:2015-11-14 23:01:53

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

我有一个用于在quartz.net中运行的Web应用程序的调度程序引擎,它运行良好。此调度程序处理许多常规但重要的任务,例如发送每日电子邮件等。

但是我现在对应用程序有了新的要求,带来了一些高频率的工作(每秒1个工作)。

我理想情况下使用相同的作业队列运行它,并且已经构建了所有错误处理和通知。我还想在高频位中重用一些实际的工作类型。

但是,由于作业的性质不同,我更倾向于为1秒内容运行专用的工作服务器,因此资源被分区。

有没有一种方法在quartz.net中使用相同的队列和作业类型来限制某些工作以这种方式运行在某些工作上?理想情况下,这将基于触发元数据或类似数据。我已阅读文档并用谷歌搜索了几个小时,但没有找到任何描述这种控制的内容。

1 个答案:

答案 0 :(得分:0)

使用Java Quartz,可以解决这个问题的Quartz Where功能。它允许选择主机来运行基于负载,名称等参数的作业。然而,这并没有移植到.NET世界(它是封闭的源代码,需要从头开始设计)。

您可以使用两个不同的计划程序来实现您的要求。托管多个调度程序并共享数据库是完全合法的,只需根据您的分区需求使用不同的调度程序实例。如果您在同一个盒子上运行实例的路径,也可以调整线程优先级。