Java Quartzscheduler在每月的第一和第三个星期一运行

Java Quartzscheduler在每月的第一和第三个星期一运行,java,cron,quartz-scheduler,Java,Cron,Quartz Scheduler,我想每个月的第一个和第三个星期一做一份工作。我正在使用一个CronTriggerBean,我正试图用以下表达式配置它,但它不起作用: <property name="cronExpression" value="0 0 12 ? * MON#1,3 *" /> 或 第一个表达式仅在第一个星期一运行作业,而第二个表达式在第三个星期一运行作业 我有没有办法用CronTriggerBean实现这一点?我将quartz-1.6.5与XML配置一起使用,因此我不认为我可以配置Simp

我想每个月的第一个和第三个星期一做一份工作。我正在使用一个CronTriggerBean,我正试图用以下表达式配置它,但它不起作用:

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


第一个表达式仅在第一个星期一运行作业,而第二个表达式在第三个星期一运行作业


我有没有办法用CronTriggerBean实现这一点?我将quartz-1.6.5与XML配置一起使用,因此我不认为我可以配置SimpleTriggerBean来实现这一点。

使用单个触发器bean无法实现这一点。您需要创建两个单独的计划程序,并向计划程序注册它们:

<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>

为什么不配置两个触发同一模块的Quartz cron作业

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

每个月的第二个星期一-0 12?1/1周一#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>