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

  • 相关阅读:
    HBase with MapReduce (MultiTable Read)
    HBase with MapReduce (SummaryToFile)
    HBase with MapReduce (Summary)
    HBase with MapReduce (Read and Write)
    HBase with MapReduce (Only Read)
    Hbase中的BloomFilter(布隆过滤器)
    HBase的快照技术
    How To Use Hbase Bulk Loading
    Cloudera-Manager修改集群的IP
    Java中的HashSet和TreeSet
  • 原文地址:https://www.cnblogs.com/mcjhcnblogs/p/13431356.html
Copyright © 2011-2022 走看看