java - Spring 调度程序 Cron 作业

标签 java spring cron quartz-scheduler spring-scheduled

我有两个要求。

  1. 每周一触发作业
  2. 每月第一个星期一触发作业

对于第一个要求,我尝试了 @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") 。我收到以下错误。

Caused by: java.lang.IllegalStateException: Encountered invalid @Scheduled method 'monthlyData': For input string: "2#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>

关于java - Spring 调度程序 Cron 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48151735/

相关文章:

Cron 作业仅在一周中的特定一天运行

java - 如何使用apache commons解析xml中的配置文件?

java - java 数组和静态方法

java - 锁组合

java - 在 Spring MVC 中使用域对象作为表单支持对象是一种不好的做法吗?

unix - 每天午夜一分钟后如何执行cron?

java - 播放解码的 Speex 数据时,我听到的都是静态的

java - 部署一个简单的 Spring MVC 应用程序(没有 web.xml)后出现 404 错误

java - 如何完全删除/禁用Web浏览器上的Spring boot Logo ?

php - 每个用户一个 cron 文件