0

我在为 Quartz 中的触发器设置作业数据映射时遇到问题。我知道这在语法上是可能的,但我需要在 xml 作业文件中进行。但是,每次我尝试将它添加到触发器时,它都会说job-data-map无效。查看作业文件的 XSD (http://www.quartz-scheduler.org/xml/job_scheduling_data_2_0.xsd),它看起来应该是cron标签的有效子标签,因为它继承了abstractTriggerType,但我的应用程序赢了不接受。

这是我的代码。我正在使用 Quartz.Net 2.0

<job>
  <name>StagingJob</name>
  <job-type>MyAssembly.StagingJob, MyAssembly</job-type>
  <durable>true</durable>
  <recover>false</recover>
</job>
<trigger>
  <cron>
    <name>StagingTrigger</name>
    <job-name>StagingJob</job-name>
    <misfire-instruction>SmartPolicy</misfire-instruction>
    <job-data-map>
      <entry>
        <key>end-time-cron</key>
        <value>0 59 * * * ?</value>
      </entry>
      <entry>
        <key>thread-count</key>
        <value>3</value>
      </entry>
    </job-data-map>
    <cron-expression>0 1 * * * ?</cron-expression>
  </cron>       
</trigger>

通过xml将作业数据添加到触发器的正确​​方法是什么?

4

1 回答 1

1

尝试删除元素misfire-instruction,无论如何智能策略都是默认值。如果您想保留该元素,它应该位于 job-data-map 元素之后。Quartz 对 XML 元素的排序非常严格。

如果您将 VS 属性窗口中的 Schemas 设置为指向发行版中包含的 XSD 文件,Visual Studio 还应该为您提供此文档的智能感知。

于 2012-10-16T04:16:31.830 回答