如何修改Spring Batch @Scheduled注解的cron表达式指定任务执行时间
Spring @Scheduled cron表达式基础规则
Spring框架的cron表达式为6位结构,从左到右依次对应:秒 分 时 日 月 周,支持特殊符号?用于规避「日」「周」两个字段的规则冲突,支持#用于指定每月第N个周几。
问题1:每日18:30执行的配置
直接替换为如下注解即可:
@Scheduled(cron = "0 30 18 * * ?")
字段含义说明:
- 秒位填0:代表整分时刻触发
- 分位填30:对应30分
- 时位填18:对应18点
- 日位填
*:匹配任意日期 - 月位填
*:匹配任意月份 - 周位填
?:不指定周规则,避免和日字段的全匹配规则冲突
问题2:每月第1、第3个周一下午14:30执行的配置
替换为如下注解即可:
@Scheduled(cron = "0 30 14 ? * MON#1,MON#3")
字段含义说明:
- 秒位填0:代表整分时刻触发
- 分位填30:对应30分
- 时位填14:对应下午2点
- 日位填
?:不指定日期规则,按周规则匹配 - 月位填
*:匹配任意月份 - 周位填
MON#1,MON#3:分别代表每月第一个周一、每月第三个周一,逗号分隔可同时生效多个规则
内容的提问来源于stack exchange,提问作者AndreaNobili
相关产品推荐
相关产品推荐

