`

quartz job 与 trigger 之间的关系

 
阅读更多

 

    JobDetail jobDetail = new JobDetail(jobName, jobGroup, class1.getClass());
    Trigger trigger3 = TriggerUtils.makeMinutelyTrigger("trigger2", 10, SimpleTrigger.REPEAT_INDEFINITELY);
    Trigger trigger4 = TriggerUtils.makeSecondlyTrigger("trigger1", 5000, SimpleTrigger.REPEAT_INDEFINITELY);

    // 下面这个接口其实可以理解为先addJob(JobDetail, false)
    // 再调用scheduleJob(Trigger), 此时Quartz会自动校正与设置trigger3的JobName与JobGroup属性
    scheduler.scheduleJob(jobDetail, trigger3);

    // 因为任务已在上一条语句中已加入, 所以不能再使用scheduleJob(JobDetail, Trigger)
    trigger4.setJobName(jobName);
    trigger4.setJobGroup(jobGroup);
    scheduler.scheduleJob(trigger4); // 看这里
  JobDetail jobDetail = new JobDetail(jobName, jobGroup, class1.getClass());
    Trigger trigger3 = TriggerUtils.makeMinutelyTrigger("trigger2", 10, SimpleTrigger.REPEAT_INDEFINITELY);
    Trigger trigger4 = TriggerUtils.makeSecondlyTrigger("trigger1", 5000, SimpleTrigger.REPEAT_INDEFINITELY);

    // 下面这个接口其实可以理解为先addJob(JobDetail, false)
    // 再调用scheduleJob(Trigger), 此时Quartz会自动校正与设置trigger3的JobName与JobGroup属性
    scheduler.scheduleJob(jobDetail, trigger3);

    // 因为任务已在上一条语句中已加入, 所以不能再使用scheduleJob(JobDetail, Trigger)
    trigger4.setJobName(jobName);
    trigger4.setJobGroup(jobGroup);
    scheduler.scheduleJob(trigger4); // 看这里

 

 总结: 

    每个任务JobDetail可以绑定多个Trigger,但一个Trigger只能绑定一个任务,这种绑定关系由四种接口来执行:

Scheduler#scheduleJob(JobDetail, Trigger)

    该接口的作用是在将任务加入Quartz的同时绑定一个Trigger,Quartz会在加入该任务后自动设置Trigger的JobName与JobGroup为该JobDetail的name与group; 

Scheduler#scheduleJob(Trigger)

 该接口的作用是将该Trigger绑定到其JobName与JobGroup指向的任务JobDetail。这时的name与group需要在Trigger绑定前由Quartz的使用者来设置与调用 

Scheduler#rescheduleJob(String, String, Trigger)

 

 

 替换一个指定的Trigger, 即解除指定Trigger与任务的绑定,并将新的Trigger与任务绑定,Quartz会自动调整新Trigger的JobName与JobGroup,而旧的Trigger将被移除 

Scheduler#triggerJob(String, String)

   创建一个立即触发的Trigger,并将其与name与group指定的任务绑定 

  JobDetail有个属性叫durable,表明该任务没有任何trigger绑定时仍保存在Quartz的JobStore中,默认为false。
    若JobDetail的durable属性为false,则任务将会从Quartz移除。 

分享到:
评论

相关推荐

    Quartz Job Scheduling Framework 中文版 V1.0.0.chm

    Quartz。现在可用的定时框架有很多,但是最受推崇的莫过于Quartz。它允许多Job多Trigger,多线程。并且受到Spring框架的完美支持。

    Quartz2.2.1深入Job、JobDetail、JobDataMap、Trigger

    Quartz2.2.1深入Job、JobDetail、JobDataMap、Trigger ,具体效果和过程看博文:http://blog.csdn.net/evankaka/article/details/45361759

    Quartz-Job-Scheduling-Framework-中文版-V0.9.1.zip

    内容提要:可以把 Quartz 引入到工作流中,主要讲了单独用 Quartz 来把 Job 组成 Job 链,模拟成一个酷似工作流的东西。 第十四章. 工作流中使用 Quartz (第二部分) 内容提要:OSWorkflow 工作流快速入门,讲了 ...

    quartz动态控制定时任务

    Quartz的工作原理是通过Job和Trigger两个核心概念来实现的,Job是具体需要执行的任务,Trigger用来触发任务的执行时机。在Quartz中,可以通过定义各种Trigger来实现不同的调度策略,如简单调度、Cron调度等。Quartz...

    quartz的基本使用,配置job,jobdetail,trigger,Scheduler

    通过CronScheduleBuilder、SimpleScheduleBuilder设置时间规则。

    Quartz的简单使用用例

    Quartz的最简使用说明,用了两个Job,添加了14个Trigger。一个例子你就明白怎么使用的了~

    Quartz.pdf

    quartz中文文档,易懂且齐全,该文档包括quartz的使用,Trigger说明,job并发,spring整合quartz以及持久化相关的知识,相对网上看到的文档来说,更容易上手和入门

    quartz框架demo,适用于初学者

    quartz框架demo demo中包含了触发器Trigger,调度器Scheduler和Job的基本使用。直接运行main函数即可

    集成spring,datajpa,springmvc,shiro,freemarker,quartz

    1.页面配置Trigger以及选择Job任务来开启定时器。 2.记录job执行历史以及异常。 3.记录schedule操作历史以及异常。 分享给大家,欢迎提出批评和建议。 有些注释没有加上,有任何问题都可以email: wfeiyangvip@163....

    基于quartz定时任务框架.rar

    本框架是我自己写的一个基于quartz定时任务框架,非常轻量级,自定义的定时任务,同时可以随时调用定时任务结果,感兴趣的可以看看

    quartz-2.2.3 jar包

    quartz-2.2.3 jar Job接口:自己写的"定时程序"实现此接口的void execute(JobExecutionContext arg0)方法,Job还有一类为有状态的StatefulJob接口,如果我们需要在上一个作业执行完后,根据其执行结果再进行下次作业...

    Quartz例子

    -- trigger对应的job的相关信息 --> <job-name>test-job</job-name> <job-group>DEFAULT</job-group> <!-- 每5秒执行一次 --> <cron-expression>0/5 * * * * ?</cron-expression> </cron> </...

    quartz 定时任务

    -- trigger触发器 --> class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"> <!-- 3秒后第一次执行 --> <!-- 5秒后重复执行 --> <!-- scheduler --> ...

    Quartz调度框架预研.docx

    Quartz有3个核心要素:调度器(Scheduler)、任务(Job)、触发器(Trigger)。Quartz完全使用Java开发,可以集成到各种规模的应用程序中。它能够承载成千上万的任务调度,并且支持集群。它支持将数据存储到数据库中以实现...

    go-quartz:简单,零依赖的Go调度库

    去石英 简单,零依赖的Go调度库。关于受到 Java调度程序的启发。图书馆积木作业界面。...job Job , trigger Trigger ) error// get all scheduled jobs keysGetJobKeys () [] int// get the scheduled j

    quartz-console:基于quartz集群模式的任务管理DEMO

    quartz集群模式将quartz任务持久化到DB,使得多个应用实例可以共同承担JOB的执行(每次执行前请求trigger的锁)。直接查询或修改quartz的数据表可能会影响quartz原有的调度模式。这个DEMO使用一个间接的task数据表,...

    作业调度:Quartz

    Quartz 是个开源的作业调度框架,为在Java 应用程序中...它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz 的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。

    spring-quartz:spring整合quartz

    spring-quartz Spring整合Quartz 将Quartz相关对象的创建和管理,整合到Spring中beans容器中,使得Quartz的使用和操作更加方便。...比如,将Quartz持久化Job和Trigger使用的DataSource,交由Spring管理维护。

    simple-job-framework:本项目以尽量简洁的方式实现一个任务调度框架,演示一个任务调度框架所使用到的核心技术栈,包括jobtriggerscheduler等。本项目参考quartz-scheduler的架构实现

    本项目以尽量简洁的方式实现一个任务调度框架,演示一个任务调度框架所使用到的核心技术栈,包括job/trigger/scheduler等。本项目参考quartz-scheduler的架构实现。 项目结构 整个项目目录结构如下, - pom.xml 整个...

    quartz-.2.16定时器

    quartz-2.16 非常好用的定时功能,包含文档及例子jar包,是从官网下载的 支持每月 每天 每周 每秒等定时执行策略

Global site tag (gtag.js) - Google Analytics