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

修改Cron表达式后Spring Boot @Scheduled定时任务停止运行

解决Spring Boot定时任务修改Cron后停止运行的问题

看起来你调整Cron表达式后遇到了定时任务罢工的情况,我来帮你梳理几个最常见的排查方向:

1. 先确认应用是否重启了

修改@Scheduled的Cron配置后,必须重启Spring Boot应用才能让新规则生效。如果只是改了代码但没重启,应用还在跑旧的定时逻辑,自然不会按新时间执行。

2. 检查时区是否匹配预期

Spring Boot默认用服务器的系统时区,如果你的服务器时区和你预想的不一样(比如服务器是UTC时区,你期望的是东八区),那任务实际执行的时间会和你预期的差好几个小时,看起来就像没执行。

你可以直接在注解里指定时区,确保时间准确:

@Scheduled(cron = "0 26 8 * * *", zone = "Asia/Shanghai")

3. 验证Cron表达式的合法性

你的表达式0 26 8 * * *格式上是符合Spring规范的(Spring Cron格式为秒 分 时 日 月 周,年是可选参数),但保险起见可以用Spring自带工具验证:

import org.springframework.scheduling.support.CronExpression;

public class CronValidator {
    public static void main(String[] args) {
        boolean isValid = CronExpression.isValidExpression("0 26 8 * * *");
        System.out.println("表达式是否合法:" + isValid);
    }
}

如果返回true,说明表达式本身没问题。

4. 排查任务执行时的异常

定时任务突然停了,很可能是某次执行时抛出了未捕获的异常,导致Spring调度器终止了这个任务的后续执行。

建议给任务加日志和异常捕获:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class TokenReaper {
    private static final Logger logger = LoggerFactory.getLogger(TokenReaper.class);

    @Scheduled(cron = "0 26 8 * * *")
    public void fire() {
        logger.info("TokenReaper定时任务开始执行");
        try {
            // 你的业务逻辑...
        } catch (Exception e) {
            logger.error("TokenReaper执行出错", e);
            // 捕获异常,避免任务被调度器终止
        }
    }
}

查看日志里有没有报错,修复对应的问题即可。

5. 确认@EnableScheduling注解没丢

虽然之前任务能正常跑,但如果修改代码时不小心移除了主类上的@EnableScheduling,定时任务会直接失效。检查你的Spring Boot主类:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling // 这个注解必须存在
public class YourApplication {
    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
    }
}

按上面的步骤排查,应该能找到问题根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:22:30