2016-09-15 70 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 *

  • 希望這會簡化您的解決方案。
相關問題