springBoot+mysql整合quartz(拿来即用)
作者:互联网
一、首先我们要谈及一个定时框架,就是quartz,本片博客涉及的实例主要是运行用了quartz的任务和触发器的灵活组合以及任务统一灵活的管理的优点
二、quartz中的核心组件:
1、Job:Job为作业的接口,为任务调度的对象。
2、JobDetail:用来描述Job实现类及其它相关的静态信息,如Job名字、关联监听器等信息。
3、Trigger:触发器,用于定义任务调度的时间规则,其中CronTrigger是使用cron表达式的触发器,比较常用。cron表达式不太了解的可以自行百度,在这里不多说。
4、Scheduler:任务调度器,是实际执行任务调度的控制器。每个Scheduler都存有JobDetail和Trigger的注册,一个Scheduler中可以注册多个JobDetail和多个Trigger。
三、先不进行数据库的连接,首先通过实例让大家明白这几大组件之间的调用关系
1、首先自定义一个job的实现类:
2、整体流程:
这就是几大组件之间的关系,其实就是通过JobDetail来描述job的实现类,之后创建触发器Trigger来制定时间的调度规则,最后将Trigger和JobDetail注册进scheduler,来进行任务调用的控制。
此代码在项目的位置为:
代码gitHub的地址结尾给出
四、定时框架要想和实际项目结合不可以避免的就是需要和mysql进行连接,这样才可以永久的保存任务,灵活的控制任务,即使项目停止后,再次启动项目任务仍然可以进行创建,包括任务的暂停或者删除状态,都可以实时的监控。
简介:几大组件的关系,上文已经说过了,本实例主要是本人开发方便,也方便大家直接使用,使用的技术为springBoot+mysql+quartz,只是实现了项目启动的定时任务初始话,以及定时任务添加功能,后期有时间了会进行完善,其他的大家也可以根据工具类ScheduleUtils自行进行调用,不难。
思路:定时任务和触发器的注册不再多说,主要是本项目的定时任务的创建和定时任务的运行。
首先是定时任务的创建,创建过程中将数据库中查出的实体类放入jobDetail。
其次是定时任务的运行,是采用获取bean的形式,之后通过反射获取对应的方法,并传入参数。
大致就是这些,最后附上gitHub源码地址:https://github.com/SweetPiglet/demo-quartz
标签:触发器,quartz,springBoot,任务,Trigger,mysql,定时,JobDetail 来源: https://www.cnblogs.com/mcjhcnblogs/p/13431356.html