美文网首页
2018-05-24 quartz

2018-05-24 quartz

作者: 番茄块块 | 来源:发表于2018-08-09 14:07 被阅读0次

    1、Job:表示一个工作,要执行的具体内容。此接口中只有一个方

    void execute(JobExecutionContextcontext)

    2、JobDetail

    JobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。

    3、Trigger代表一个调度参数的配置,什么时候去调。--定时器

    Quartz 中五种类型的 Trigger:SimpleTrigger,CronTirgger,DateIntervalTrigger,NthIncludedDayTrigger和Calendar 类( org.quartz.Calendar)。

    最常用的:

    2.1.cron 方式:采用cronExpression表达式配置时间。

    2.2.simple 方式:和JavaTimer差不多,可以指定一个开始时间和结束时间外加一个循环时间。

    【和java API中的Timer类类似】

    2.3.calendars 方式:可以和cron配合使用,用cron表达式指定一个触发时间规律,用calendar指定一个范围。

    注意:cron方式需要用到的4张数据表: 【即只有corn时间表达式的方式才会向表插入数据】

    qrtz_triggers,qrtz_cron_triggers,qrtz_fired_triggers,qrtz_job_details

    1.1.qrtz_blob_triggers: 以Blob类型存储的触发器

    1.2.qrtz_calendars:存放日历信息, quartz可配置一个日历来指定一个时间范围。

    1.3.qrtz_cron_triggers:存放cron类型的触发器。

    1.4.qrtz_fired_triggers:存放已触发的触发器。

    1.5.qrtz_job_details:存放一个jobDetail信息。

    1.6.qrtz_job_listeners:job**监听器**。

    1.7.qrtz_locks: 存储程序的悲观锁的信息(假如使用了悲观锁)。

    1.8.qrtz_paused_trigger_graps:存放暂停掉的触发器。

    1.9.qrtz_scheduler_state:调度器状态。

    1.10.qrtz_simple_triggers简单触发器的信息。

    1.11.qrtz_trigger_listeners触发器监听器

    1.12.qrtz_triggers触发器基本信息

    4、Scheduler代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合,就可以被Scheduler容器调度了

    从上面简图可以看出各概念之间的关系

    一个job可以被多个Trigger 绑定,但是一个Trigger只能绑定一个job!

    可以写个小案例来初步了解下quartz:

    思路:1建一个任务类implements Job接口,作为具体的任务执行逻辑。

    class myjob implements Job{

        @Override

        public void execute(JobExecutionContext context)throws JobExecutionException {

         //具体的任务逻辑

          System.out.println("实验quartz,每隔多少秒打印一次");

       }

    }

    2:测试类里面进行任务调度,首先生成JobDetail。。。。

    。。。待后续

    相关文章

      网友评论

          本文标题:2018-05-24 quartz

          本文链接:https://www.haomeiwen.com/subject/brusjftx.html