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

如何将Spring集成的Quartz调度器切换至待机模式

让Spring整合的Quartz调度器进入待机模式

嘿,很高兴看到你的Spring+Quartz调度器运行得这么顺畅!要让调度器进入待机状态、停止触发任何新任务,Quartz本身就提供了简洁的API,结合Spring的整合方式,我给你两种实用方案:

方案一:暂停整个调度器(全局待机)

这是最直接的方式,调用Quartz Scheduler的standby()方法后,整个调度器会停止触发所有触发器,已经在执行的任务会继续完成,但不会启动新的任务。

实现步骤:

  1. 在你的Spring服务类中注入Quartz的Scheduler实例(Spring的SchedulerFactoryBean会自动将其注册到容器中):
import org.quartz.Scheduler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class SchedulerControlService {

    @Autowired
    private Scheduler scheduler;

    // 将调度器切换至待机模式
    public void switchToStandbyMode() throws Exception {
        if (!scheduler.isInStandbyMode()) {
            scheduler.standby();
            System.out.println("调度器已成功进入待机状态,不再触发任何新任务");
        } else {
            System.out.println("调度器已经处于待机状态");
        }
    }

    // 恢复调度器正常运行
    public void resumeScheduler() throws Exception {
        if (scheduler.isInStandbyMode()) {
            scheduler.start();
            System.out.println("调度器已恢复正常运行,任务将按计划触发");
        } else {
            System.out.println("调度器已经处于运行状态");
        }
    }
}
  1. 调用switchToStandbyMode()方法即可让调度器进入待机状态,后续需要恢复时调用resumeScheduler()就行。

方案二:暂停特定触发器(精准控制)

如果你不想让整个调度器停摆,只是想暂停某个特定任务的触发(比如你配置的rsHourlyJobCronTrigger),可以单独暂停对应的触发器:

// 暂停指定的Cron触发器
public void pauseHourlyJobTrigger() throws Exception {
    // 这里的触发器名称要和你配置文件中的id一致:rsHourlyJobCronTrigger
    scheduler.pauseTrigger("rsHourlyJobCronTrigger");
    System.out.println("rsHourlyJobCronTrigger触发器已暂停,对应的任务不再触发");
}

// 恢复指定的Cron触发器
public void resumeHourlyJobTrigger() throws Exception {
    scheduler.resumeTrigger("rsHourlyJobCronTrigger");
    System.out.println("rsHourlyJobCronTrigger触发器已恢复,任务将按Cron表达式继续触发");
}

关键注意点:

  • 待机模式下,已经启动的任务会继续执行完毕,不会被强制中断;
  • 调用standby()后,调度器处于STANDBY状态,此时无法添加/修改触发器或任务,需要恢复到运行状态后才能进行这类操作;
  • 确保你的Spring配置中使用了SchedulerFactoryBean来创建调度器(这是Spring整合Quartz的标准方式),这样Scheduler实例才能被正常注入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:01:10