管理Quartz.Net的配置

时间:2012-11-07 15:26:45

标签: quartz.net quartz.net-2.0

Quartz.Net使用XML文件配置要运行的作业以及运行这些作业的计划。据我所知,XML配置的唯一其他选择是在编译时配置作业和计划。

我们有大量的计划任务(250个任务,每个任务都部署在3到5个环境中),并且正在寻求迁移这些任务以使用Quartz.Net。

[1]在Quarts.Net中是否有管理作业和安排配置信息的最佳实践?

[2]是否有用于创建配置文件的工具?

作业的示例配置是:

<job>
  <name>addDirectoryScanListener</name>
  <group>directoryScanJobExample</group>
  <description>Sample job for Quartz Server</description>
  <job-type>Examples.DirectoryScanListenerExample, Examples</job-type>
</job>

<trigger>
  <simple>
    <name>addDirectoryScanListenerSimpleTrigger</name>
    <group>directoryScanJobExampleSimpleTriggerGroup</group>
    <description>Simple trigger to simply fire sample job</description>
    <job-name>addDirectoryScanListener</job-name>
    <job-group>directoryScanJobExample</job-group>
    <misfire-instruction>SmartPolicy</misfire-instruction>
    <repeat-count>0</repeat-count>
    <repeat-interval>10000</repeat-interval>
  </simple>
</trigger>

1 个答案:

答案 0 :(得分:8)

有几种内置方法可以配置Quartz.NET,这里只是一个小比较。

  • 基于代码的配置
    • 您使用调度程序API来创建/更新/删除作业和触发器
    • 通过硬编码配置的计划和作业自然需要重新编译,使用带有调度程序API的UI等,持久性作业存储是一个不同的故事
  • XML配置
    • 您可以安排作业观看XML文件以进行更改
    • 有关观看文件更改的示例,请参阅Can quartz.net reconfigure jobs when config file changes?
    • 当您使用与XML文件关联的XSD文件时,除了使用Visual Studio进行智能感知之外,目前还没有可用的工具

然后,您还有工作店选项。无论您如何配置调度程序/作业/触发器,都可以使用任何作业存储。

  • RAMJobStore
    • 最快(但通常不是因素)并且最简单的设置作业存储但无法从服务器重新启动等引起的错过触发器触发中恢复
  • AdoJobStore
    • 在重新启动之间存储触发器,作业及其状态,并允许您运行Quartz.NET集群以进行故障转移和扩展

还有一些基于Web的管理UI可用,有关详细信息,请参阅Any open-source admin UI for quartz.NET

Quartz.NET tutorial始终是一个很好的起点。