spring boot 集成Quartz 动态管理定时任务

spring boot 集成Quartz 动态管理定时任务

简介
Quartz 是一款强大的任务调度器,可以实现较为复杂的调度功能,并且支持集群。
spring boot项目中集成Quartz
1.添加maven依赖
  <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.2.1</version>
  </dependency>
2.创建 Quartz配置类,并将job实例化工厂指定为自定义的MyJobFactory

在这里插入图片描述

3.将job bean加入spring 管理之中,重写JobFactory

在这里插入图片描述

4.创建任务调度,实现定时业务处理

在这里插入图片描述

5.创建任务调度工具类
private static Scheduler scheduler;

 /**
 	* 初始化scheduler
 	*/
 public static void initScheduler() {
    	if (scheduler == null) {
        try {
            scheduler = (new StdSchedulerFactory()).getScheduler();
        } catch (SchedulerException var1) {
            var1.printStackTrace();
        }
    }

 }
/**
 	* 开始任务调度
 	* @throws SchedulerException
 	*/
	public static void startJob() throws SchedulerException {
   	 Trigger trigger = 			TriggerBuilder.newTrigger().withIdentity("key1","valu1").withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?")).build();
   	 JobDetail jobDetail = JobBuilder.newJob(TestJob.class).build();
   	 if(!scheduler.isStarted()){
       	 scheduler.start();
   	 }
    	scheduler.scheduleJob(jobDetail,trigger);
}

/**
 * 停止任务调度
 * @throws SchedulerException
 */
public static void stopJob() throws SchedulerException {
    TriggerKey triggerKey = TriggerKey.triggerKey("key1","valu1");
    scheduler.pauseTrigger(triggerKey);
    scheduler.unscheduleJob(triggerKey);
}
6.创建接口,前端通过接口启动定时任务

在这里插入图片描述

spring boot启动类中添加@EnableScheduling注解在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值