Quartzscheduler 运行 在每个月的第一个和第三个星期一
Quartzscheduler run on 1st and 3rd Monday of the month
我想 运行 每个月的第一个和第三个星期一找一份工作。我正在使用 CronTriggerBean,我正在尝试使用以下表达式进行配置,但我不起作用:
<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 来完成它。
您将无法使用单个触发器 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>
你为什么不配置两个触发同一个模块的 Quartz-cron 作业?
每个月的第一个星期一 - 0 0 12 ? 1/1 周一#1 *
每个月的第二个星期一 - 0 0 12 ? 1/1 周一#2 *
- 希望这会简化您的解决方案。
我想 运行 每个月的第一个和第三个星期一找一份工作。我正在使用 CronTriggerBean,我正在尝试使用以下表达式进行配置,但我不起作用:
<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 来完成它。
您将无法使用单个触发器 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>
你为什么不配置两个触发同一个模块的 Quartz-cron 作业?
每个月的第一个星期一 - 0 0 12 ? 1/1 周一#1 *
每个月的第二个星期一 - 0 0 12 ? 1/1 周一#2 *
- 希望这会简化您的解决方案。