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
相关产品推荐
相关产品推荐

