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

Spring Scheduled定时任务唤醒:如何主动触发执行线程?

如何主动触发@Scheduled配置的定时任务
  • 完全可以主动调用。@Scheduled(fixedDelay = 5000)只是给方法添加了定时触发的规则,本质上这个方法还是一个普通的Spring Bean方法,你可以通过依赖注入获取Bean实例后直接调用,无需等待下一个定时周期。

  • 举个实际代码示例:
    定时任务类定义:

    @Service
    public class MyTimedTask {
        @Scheduled(fixedDelay = 5000)
        public void executeTask() {
            // 任务执行逻辑
            System.out.println("任务执行中");
        }
    }
    

    在其他业务类中主动调用:

    @Service
    public class BusinessService {
        private final MyTimedTask timedTask;
    
        // 构造方法注入
        public BusinessService(MyTimedTask timedTask) {
            this.timedTask = timedTask;
        }
    
        public void triggerTaskImmediately() {
            // 主动触发任务执行
            timedTask.executeTask();
        }
    }
    
  • 注意事项:如果任务方法涉及共享资源操作,要做好并发控制,避免定时触发和主动调用同时执行导致的数据不一致问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 05:42:02