2017-05-08 16 views
1

我想武官失火指令使用XML定义的调度插件Quartz调度例外,同时增加失火指令到调度

(作业应该每分钟运行一次,如果工作擦枪走火它应该什么也不做,计划运行的下一个作业)

<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

回答

3

按照Quartz XSDmisfire-instruction元素必须先于​​之一。

这就是错误信息告诉你的。它提到了time-zone元素,因为这是在​​之后唯一有效元素

+0

是的,你是对的,谢谢! – svarog