2016-09-15 69 views
0

我想在每月的第一个和第三个星期一运行一个工作。我使用我想用下面的表达式来配​​置一个CronTriggerBean但我不工作:Quartzscheduler在月份的第一个和第三个星期一运行

<property name="cronExpression" value="0 0 12 ? * MON#1,3 *" /> 

<property name="cronExpression" value="0 0 12 ? * MON#1,MON#3 *" /> 

第一个表达式只运行的第一个星期一的工作而第二个星期一在第三个工作。

有没有什么办法可以用CronTriggerBean来实现?我正在使用XML配置的quartz-1.6.5,所以我不认为我可以配置一个SimpleTriggerBean来完成它。

回答

0

您将无法使用单个触发器bean执行此操作。您将需要创建2个独立的,并与调度注册它们:

<bean id="cronTriggerJobFirstMonday" 
      class="org.springframework.scheduling.quartz.CronTriggerBean"> 
    <property name="jobDetail" ref="YourQuartzJobBean" /> 
    <property name="cronExpression" value="0 0 12 ? * MON#1 *" /> 
</bean> 

<bean id="cronTriggerJobThirdMonday" 
      class="org.springframework.scheduling.quartz.CronTriggerBean"> 
    <property name="jobDetail" ref="yourQuartzJobBean" /> 
    <property name="cronExpression" value="0 0 12 ? * MON#3 *" /> 
</bean> 

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
    <property name="triggers"> 
     <list> 
      <ref bean="cronTriggerJobFirstMonday" /> 
      <ref bean="cronTriggerJobThirdMonday" /> 
     </list> 
    </property> 
</bean> 
1

你为什么不配置两个石英cron作业触发同一模块?

每个月的第一个星期一 - 0 0 12? 1/1 MON#1 *

每个月的第二个星期一 - 0 0 12? 1/1 MON#2 *

  • 希望这会简化您的解决方案。
相关问题