博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springBoot2.x设置quartz的overwriteExistingJobs参数
阅读量:6907 次
发布时间:2019-06-27

本文共 1533 字,大约阅读时间需要 5 分钟。

hot3.png

背景

springBoot2.x中集成了quartz的自动配置类(QuartzAutoConfiguration),但是springBoot提供的配置属性中并没有提供overwriteExistingJobs这个属性的设置。

导致的问题

假如我们使用quartz自带的数据库对任务进行了持久化且系统并没有提供对任务的界面化操作。当我们需要对任务进行修改时,更改了代码或者配置文件中的信息,如参数、corn表达式等,会发现新的表达式并没有生效(原因是我们没有设置overwriteExistingJobs参数)

解决方案

在quartz自动初始化之后,我们获取SchedulerFactory,设置overwriteExistingJobs参数,然后获得Scheduler,通过Scheduler重新设置所有Trigger.

代码实现

package com.koolyun.eas.account.scheduler.config;import org.quartz.*;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.autoconfigure.AutoConfigureAfter;import org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.quartz.SchedulerFactoryBean;import javax.annotation.PostConstruct;import java.util.List;/** * @author bozheng * @date 2018/10/10 15:48 */@Configuration@AutoConfigureAfter(QuartzAutoConfiguration.class)public class QuartzSupportConfig{    @Autowired(required = false)    private List
triggers ; @Autowired SchedulerFactoryBean schedulerFactoryBean; @PostConstruct public void quartzScheduler() throws SchedulerException { schedulerFactoryBean.setOverwriteExistingJobs(true); if (triggers != null){ Scheduler scheduler = schedulerFactoryBean.getScheduler(); for (Trigger trigger : triggers){ scheduler.rescheduleJob(trigger.getKey(),trigger); } } }}

转载于:https://my.oschina.net/u/2312080/blog/2245854

你可能感兴趣的文章
silverlight访问WebService遭遇跨域问题
查看>>
goldengate 原理图
查看>>
进阶-源码编译的相关知识
查看>>
wind7重装后修复ubuntu(wubi安装)
查看>>
Mysql 慢查询和慢查询日志分析
查看>>
tomcat与nginx的整合
查看>>
IIS是如何处理ASP.NET请求的
查看>>
HTTP错误大全
查看>>
内核启动过程
查看>>
JSplitPane分割线固定问题
查看>>
递推公式-HDOJ2041
查看>>
android中listview的getView方法不调用的一种情况
查看>>
HTTP socket 类
查看>>
两个有用的宏:“禁止类成员复制”以及“禁止隐式构造”
查看>>
如何创建OpenCart主题/模板
查看>>
DES加密解密 JAVA与.NET互通程序代码
查看>>
springframework shedular task
查看>>
《分布式服务框架原理与实践》——第5章协议栈阅读笔记
查看>>
Server-Sent Events
查看>>
nio服务器端
查看>>