java spring boot 动态添加 cron(表达式)任务、动态添加停止单个cron任务
- 添加对应的maven
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version> </dependency>
- 添加一个工具类 SchedulerManager
import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.impl.StdSchedulerFactory; import java.util.Properties; public class SchedulerManager { private static Scheduler scheduler; // 初始化 Scheduler public static void initScheduler() throws SchedulerException { SchedulerFactory schedulerFactory = new StdSchedulerFactory(); scheduler = schedulerFactory.getScheduler(); // 为了方便直接创建后启用 scheduler.start(); // 可以设置线程个数,默认10个 /*Properties props = new Properties(); props.put("org.quartz.threadPool.threadCount", "20"); // 增加线程池大小 SchedulerFactory schedulerFactory = new StdSchedulerFactory(props); scheduler = schedulerFactory.getScheduler(); scheduler.start();*/ } // 使用同步块确保线程安全 public static Scheduler getScheduler() { if (scheduler == null) { synchronized (SchedulerManager.class) { if (scheduler == null) { // 双重检查 try { initScheduler(); } catch (SchedulerException e) { // 处理异常或抛出自定义异常 e.printStackTrace(); }