博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot2.x 整合quartz,实现任务的调度
阅读量:5798 次
发布时间:2019-06-18

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

hot3.png

在springboot2.x中已经集成了quartz的starter,我们只需

1、在pom文件中引入

org.springframework.boot
spring-boot-starter-quartz

2、创建application-quartz.yml文件

文件名以application为前缀,是为了在主配置文件(application.yml)中引入方便

spring:  quartz:    #相关属性配置    properties:      org:        quartz:          scheduler:            instanceName: clusteredScheduler            instanceId: AUTO          jobStore:            class: org.quartz.impl.jdbcjobstore.JobStoreTX            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate            tablePrefix: QRTZ_            isClustered: true            clusterCheckinInterval: 10000            useProperties: false          threadPool:            class: org.quartz.simpl.SimpleThreadPool            threadCount: 10            threadPriority: 5            threadsInheritContextClassLoaderOfInitializingThread: true    #数据库方式    job-store-type: jdbc    # 初始化表结构    # jdbc:      # initialize-schema: never

3、在主配置文件中引入quartz配置

spring:   profiles:    include: quartz

4、创建一个任务控制工具类,用来操作任务

由于在springboot 2.x中,已经默认支持了quartz,提供了调度器工厂(SchedulerFactory)和调度器的bean的定义,并通过以上文件配置完成,所以我们这里直接注入scheduler就可以实现相应的功能。(具体操作略,搜索一下有好多)

@Componentpublic class QuartzManager {    @Resource    private Scheduler schedule;

...

}

5、创建任务类实现Job接口或者继承QuartzJobBean类。

此类中就可以注入对应的Service实现具体业务。

6、如果想手动初始化任务,可以创建TaskRunner并实现ApplicationRunner接口,实现run方法来组织定时任务。

@Overridepublic void run(ApplicationArguments args) throws Exception {    LOGGER.info("初始化任务");    String jobName = "abcJob";    String jobGroup = "DEFAULT";    String description = "负责清理超时的";    String jobClassName = "com.xxx.AbcJob";    String cronExpression = "0 0 0 * * ? *";    quartzManager.addOrUpdateJob(AbcJob.class, jobName, jobGroup, cronExpression);}

7、可以使用QuartzManager实现各种任务的动态管理功能

 

转载于:https://my.oschina.net/u/992937/blog/2246909

你可能感兴趣的文章
$_SERVER['SCRIPT_FLENAME']与__FILE__
查看>>
skynet实践(8)-接入websocket
查看>>
系统版本判断
查看>>
关于Css选择器优先级
查看>>
My97DatePicker 日历插件
查看>>
0603 学术诚信与职业道德
查看>>
小点心家族第3位成员——楼层定位效果
查看>>
Knockout.Js官网学习(enable绑定、disable绑定)
查看>>
工厂模式家族
查看>>
hive基本操作与应用
查看>>
excel快捷键设置
查看>>
poj3692
查看>>
python之信号量【Semaphore】
查看>>
html5纲要,细谈HTML 5新增的元素
查看>>
Android应用集成支付宝接口的简化
查看>>
Hichart 资料收集
查看>>
C#开发微信门户及应用(12)-使用语音处理
查看>>
[分享]Ubuntu12.04安装基础教程(图文)
查看>>
数据集成之主数据管理(一)基础概念篇
查看>>
[Vim] 搜索模式(正则表达式)
查看>>