我遇到了在Quartz中为触发器设置作业数据映射的问题。我知道它可以用语法编写,但我需要在xml作业文件中进行。但是,每当我尝试将其添加到触发器时,它都会说作业数据映射无效。查看作业文件的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将作业数据添加到触发器的正确方法是什么?
答案 0 :(得分:1)
尝试删除 misfire-instruction 元素,无论如何智能策略是默认值。如果你想保留元素,它应该在job-data-map元素之后。 Quartz对XML元素的排序非常严格。
如果您将VS属性窗口中的Schemas设置为分发中包含的XSD文件,Visual Studio还应该为您提供智能感知。