新版Quartz.NET2.0(包括目前的beta版)更改任务配置文档格式,1.0以前的配置文件无法在2.0中使用。所以想升级到2.0的版本需要注意配置文档,另外2.0不再支持.net framework 1.0、2.0,所以您的.net framework版本必须在3.5 sp1以上。

以下是一个完整任务配置文档示例:

<?xml version="1.0" encoding="utf-8"?>
<!-- This file contains job definitions in schema version 2.0 format -->
<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">  
  <processing-directives> 
    <overwrite-existing-data>true</overwrite-existing-data> 
  </processing-directives>  
  <schedule> 
    <job> 
      <name>sampleJob</name>  
      <group>sampleGroup</group>  
      <description>Sample job for Quartz Server</description>  
      <job-type>Quartz.Server.SampleJob, Quartz.Server</job-type>  
      <durable>true</durable>  
      <recover>false</recover> 
    </job>  
    <trigger> 
      <simple> 
        <name>sampleSimpleTrigger</name>  
        <group>sampleSimpleGroup</group>  
        <description>Simple trigger to simply fire sample job</description>  
        <job-name>sampleJob</job-name>  
        <job-group>sampleGroup</job-group>  
        <misfire-instruction>SmartPolicy</misfire-instruction>  
        <repeat-count>-1</repeat-count>  
        <repeat-interval>10000</repeat-interval> 
      </simple> 
    </trigger> 
  </schedule> 
</job-scheduling-data>

主要有三个节点:

pre-processing-commands(只允许一次)

processing-directives(只允许一次)

schedule(允许无穷次)

<pre-processing-commands>元素

在调度任务和触发器之前执行的命令,子元素其实就是包含预先删除调度任务和触发器,这里可以用星号(*)来代表所有调度任务或触发器。

<processing-directives>元素

在调度任务和触发器之前应该遵守的规则,其包含:

overwrite-existing-data:允许覆盖调度任务和触发器。

ignore-duplicates:忽略相同调度任务和触发器,并不会产品错误。

<schedule>元素

这是配置调度任务和触发器节点,也是主角。跟1.0不同的是,不在用<job>节点来保证<job-detail>和<trigger>相对应。2.0版本<job>和<trigger>是同级关系,至于子元素跟1.0是相同的。

 

题外话,Job类不能有构造函数,为此我调试半天。