You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java SpringBoot每4小时执行的Scheduler CRON任务失效问题排查

Spring Boot 定时任务每4小时执行异常的解决方案

问题根源

你使用的6位CRON表达式 0 0 */4 * * * 存在日与星期字段冲突的问题。Spring Boot的CRON规则中,第4位(日)和第6位(星期)是互斥字段,不能同时使用*(表示所有值),否则调度器会出现解析逻辑异常,导致任务仅触发一次后停止。

修正后的6位CRON表达式

@Scheduled(cron = "0 0 */4 * * ?")
@SchedulerLock(name = "InsightPhotoUploaderCronJob", lockAtMostFor = PT5M, lockAtLeastFor = PT5M)
  • ? 用于表示忽略星期字段的调度判断,避免与日字段的*产生冲突,确保每4小时整点触发任务。

额外排查建议

  • 查看Spring Boot日志,搜索TaskScheduler相关日志,确认任务的触发记录和调度状态。
  • 确认服务器时区与你预期的一致,若时区偏差可能导致任务触发时间不符合预期。
  • 你之前10分钟间隔的任务(0 */10 * * * *)同样存在日/星期冲突,只是因触发频率高未暴露问题,建议一并修正为0 */10 * * * ?以避免潜在隐患。

内容的提问来源于stack exchange,提问作者CodeFreak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 19:47:09