向调度程序添加失火指令时石英调度程序异常

Quartz scheduler exception while adding misfire-instruction to scheduler

我正在尝试将 misfire 指令附加到使用 XML 插件定义的调度程序

(作业应该每分钟 运行,如果作业失败,它应该什么也不做,运行 下一个作业按计划进行)

<schedule>
    <job>
        <name>MyJob</name>
        <group>MyGroup</group>
        <description>My job description</description>
        <job-class>com.path.to.MyJobClass</job-class>     
    </job>

    <trigger>
        <cron>
            <name>JobCronTrigger</name>
            <description>
                bla bla
            </description>
            <job-name>MyJob</job-name>
            <job-group>MyGroup</job-group>
            <cron-expression>0 0/1 * 1/1 * ?</cron-expression>
            <misfire-instruction>MISFIRE_INSTRUCTION_DO_NOTHING</misfire-instruction>
        </cron>
    </trigger>
</schedule>

我收到一条 XML 验证异常消息

Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: 
Invalid content was found starting with element 'time-zone'. One of 
'{"http://www.quartz-scheduler.org/xml/JobSchedulingData":priority, 
"http://www.quartz-scheduler.org/xml/JobSchedulingData":calendar-name, 
"http://www.quartz-scheduler.org/xml/JobSchedulingData":job-data-map, 
"http://www.quartz-scheduler.org/xml/JobSchedulingData":start-time, 
"http://www.quartz-scheduler.org/xml/JobSchedulingData":start-time-seconds-in-future, 
"http://www.quartz-scheduler.org/xml/JobSchedulingData":misfire-instruction, 
"http://www.quartz-scheduler.org/xml/JobSchedulingData":cron-expression}'
is expected.

我已经尝试将 <time-zone>UTC</time-zone 添加到 cron 定义中,但我遇到了更多验证错误。 不用说当我删除

MISFIRE_INSTRUCTION_DO_NOTHING

一切正常。那么我该如何修复我的 XML 呢?

我正在使用 Quartz 2.3.0

根据 Quartz XSDmisfire-instruction 元素必须在 cron-expression 元素之前。

这就是错误消息告诉您的内容。它提到了 time-zone 元素,因为这是唯一有效的元素 after cron-expression.