我有两个要求。
对于第一个要求,我尝试了@Scheduled(cron = "0 0 12 ? * MON")
和@Scheduled(cron = "0 0 12 ? * 2")
。他们都没有工作。该函数未被调用。
对于第二个要求,我尝试了@Scheduled(cron = "0 0 12 ? 1/1 MON#1")
和@Scheduled(cron = "0 0 12 ? 1/1 2#1")
。我收到以下错误。
引起:java.lang.IllegalStateException:遇到无效的@Scheduled方法'monthlyData':对于输入字符串:“2#1”“。
答案 0 :(得分:1)
两个cron表达式都是有效的并代表您所写的内容,现在,通过XML配置,以下示例似乎对我有用:
<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 class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTriggerJobFirstMonday" />
</list>
</property>
</bean>
答案 1 :(得分:0)
希望这会对你有所帮助
每个星期一 - (0 0 12?* MON)[sec min hour dayOfmonth month dayofweek]
每个月的第一个星期一 - (0 0 12?* 2#1) - 它会在每个月的第一个星期一12点触发事件