quartz.net:如何在运行时添加和删除作业

时间:2012-08-21 12:52:49

标签: quartz.net

我正在使用Windows服务在Spring.NET集成的帮助下运行Quartz.NET作业。

我面临以下两个问题:

  1. 我不断添加/删除作业(使用新的业务对象的spring.net配置)。这意味着我每次都需要停止Windows服务和正在运行的作业。

  2. 此外,作业需要花费大量时间来执行,因此最好让多台服务器分别执行我在一个中心位置配置的作业。

  3. 您如何推荐实施这两项功能?

2 个答案:

答案 0 :(得分:1)

AFAIK如果没有编写代码来在单独的应用程序域中加载调度程序,然后自己管理应用程序域,则无法执行#1操作。这在Quartz.Net发行版中不可用,因此您必须自己完成。

对于第2项,您可以设置集群石英服务器,这将解决该问题。您将需要使用数据库存储来设置要集群的调度程序。

答案 1 :(得分:0)

如果您不想设置石英集群服务器,另一个建议是推出自己的基于简单队列的体系结构。拥有一个轻量级的调度程序服务,可以将您的作业推送到队列(AWS / Azure队列运行良好),然后是可以使用这些作业的工作池。我在更改石英计划方面遇到了类似的问题,并且当我不必担心在石英线程中运行的长时间运行进程时,发现更容易管理石英。如果您确实需要在请求更改后停止工作,这可能对您不起作用。