管理Quartz.Net的配置

Sea*_*ron 3 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>
Run Code Online (Sandbox Code Playgroud)

Mar*_*hma 8

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

  • 基于代码的配置
    • 您可以使用调度程序API来创建/更新/删除作业和触发器
    • 通过硬编码配置的计划和作业自然需要重新编译,使用带有调度程序API的UI等,持久性作业存储是一个不同的故事
  • XML配置

然后,你有工作商店选择.无论您配置调度程序/作业/触发器的方式如何,都可以使用任何作业存储.

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

还有一些基于Web的管理UI可用,有关详细信息,请参阅quartz.NET的任何开源管理UI.

Quartz.NET教程始终是开始太的好地方.