2012-11-07 60 views
3

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

我们有大量的计划任务(每个部署到3到5个环境之间的250个任务),并且希望将这些任务迁移到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> 

回答

8

有几个内置的方式来配置Quartz.NET,这里有一个小的比较。

  • 基于代码的配置
    • 您使用的调度API创建/更新/删除工作,并触发
    • 时间表和工作通过硬编码自然需要重新编译,使用UI或如与调度API配置和持久性的工作存储是一个不同的故事
  • XML配置

话又说回来,你有工作存储选项。无论您如何配置计划程序/作业/触发器,您都可以使用任何作业存储。

  • RAMJobStore
    • 最快的(但通常不是一个因素)和最简单的设置工作专卖店,但没有办法从造成服务器错过触发器触发恢复会重新启动等
  • AdoJobStore
    • 在重启之间存储触发器,作业及其状态,并允许您运行Quartz.NET集群以进行故障切换和缩放

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

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

+0

Marko - 感谢您的回应,这真的很有用。 Admin UI链接也很有趣。至于教程,除非我错过了一些东西,它现在似乎专注于Quartz 1,这有点令人困惑。 –

+0

的确如此,教程与版本1.x相同,但概念相同。 –