繁体   English   中英

将Quartz工作限制为特定工人

[英]Limit Quartz jobs to particular worker

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

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

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

但是,由于作业的性质不同,我非常希望为1秒的时间运行一个专用的工作服务器,以便对资源进行分区。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM