zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    树的计数 + prufer序列与Cayley公式 学习笔记
    链表
    密码学摘要
    查找与排序
    匿名内部类 调用方法内局部变量
    <c:url>标签相关知识点
    Oracle 导入导出数据库
    oracle cursor
    Oracle 删除用户和表空间------创建表空间和用户
    iOS延迟执行方法
  • 原文地址:https://www.cnblogs.com/mcjhcnblogs/p/13431356.html
Copyright © 2011-2022 走看看