`

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 中文版 chm版

    9. **API使用**:文档会详细介绍如何创建、调度和管理Job及Trigger,以及如何与Scheduler进行交互,这对于实际编程至关重要。 10. **最佳实践**:文档可能还会涵盖如何设计和配置Quartz以优化性能,以及避免常见...

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

    它是Job的配置对象,与Trigger结合定义了Job的执行策略。 5. **Calendar(日历)**:Calendar对象可以用于限制某些特定日期或时间段内Trigger的执行。例如,可以设定在周末或节假日不触发Job。 6. **Persistent ...

    Quartz Job Scheduling Framework 中文版

    Quartz的核心概念包括Job(作业)、Trigger(触发器)以及Scheduler(调度器)。 1. **Job(作业)**: 在Quartz中,Job是你要执行的任务的抽象。它是一个接口,你需要实现这个接口来创建自己的任务类。Job不包含...

    Quartz Job Scheduling Framework 中文版 V0.9.2

    在使用Quartz时,开发者需要了解并配置Scheduler实例,创建和调度Job与Trigger,并根据实际需求选择合适的触发类型。同时,理解Job的状态管理(如等待、暂停、恢复和删除)也很重要。对于大型系统,良好的设计和规划...

    Quartz Job Scheduling Framwork中文文档

    1. **Job和Trigger**:在Quartz中,任务被称为Job,而调度的时间规则称为Trigger。Job是执行的实体,而Trigger定义了Job何时应该被执行。开发者可以自定义Job类,实现特定的业务逻辑,Trigger则可以根据cron表达式或...

    Quartz Job 中文文档 CHM格式

    在Quartz Job中,核心概念包括Job、Trigger、Scheduler和Calendar。Job代表一个具体的工作任务,你可以定义自己的Job类来实现特定的任务逻辑。Trigger则控制Job的执行时机,可以是简单触发器或cron触发器,分别按照...

    Quartz Job Scheduling Framework第11章翻译初稿

    然后,创建一个Trigger实例,设置它的触发规则,最后通过Scheduler实例将Job和Trigger关联起来,让Quartz知道何时执行哪个Job。 第11章可能还会讨论Quartz的集群功能,当配置多个Quartz实例时,它们可以共享相同的...

    Quartz Job Scheduling Framework 中文版 V0.9.5 API帮助文档

    在Quartz中,核心概念包括Job、Trigger、Scheduler和Calendar。以下是对这些关键概念的详细解释: 1. **Job**:Job是你要执行的任务的接口或类。开发者需要实现`org.quartz.Job`接口,定义`execute...

    quartz job 配置手册

    总结,Quartz Job配置手册涵盖了从基础的Job和Trigger定义,到高级的集群、持久化和监听器配置等全方位的知识点。通过学习和实践,开发者能够构建出灵活、可靠的定时任务系统,满足各种复杂的调度需求。提供的aybook...

    Quartz Job Scheduling Framework第5章翻译初稿

    在实际开发中,我们经常需要处理与数据库的交互,Quartz允许将作业和触发器存储在数据库中,这样可以在多台服务器之间共享作业和触发器状态,实现高可用性。配置数据库存储时,需提供相应的JDBC连接信息,并确保...

    Quartz_Job_Scheduling_Framework_中文版文档

    9. **API使用**:文档会详细介绍如何使用Quartz API创建Job,定义Trigger,以及如何与Scheduler交互来安排和控制任务。 10. **最佳实践**:文档可能还会包含一些使用Quartz的最佳实践,例如如何优化任务调度,如何...

    Quartz Job Scheduling Framework第2章翻译初稿

    对于源码部分,应该关注关键类和方法,如`org.quartz.Scheduler`、`org.quartz.Job`和`org.quartz.Trigger`等。通过阅读和理解这一章,开发者可以掌握Quartz的基本用法,并具备在实际项目中应用Quartz的能力。 总之...

    quartz-job初始化数据表.zip

    Quartz 是一个开源的作业...总之,"quartz-job初始化数据表.zip" 文件是设置Quartz作业调度系统的关键步骤,它确保了数据库能正确地存储和管理所有的Job和Trigger信息,从而使得Quartz能够在适当的时间执行预定的任务。

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

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

    定时框架spring+quartz

    5. **注册Job和Trigger**:在Spring配置文件中,将Job和Trigger关联起来,这样当Quartz启动时,就会根据配置自动创建并安排这些任务。 6. **启动Scheduler**:在Spring的启动代码中,通过SchedulerFactoryBean启动...

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

    本教程将详细介绍如何在项目中配置并使用Quartz,包括创建Job、JobDetail、Trigger以及Scheduler。 首先,我们要了解Quartz中的核心概念: 1. **Job**:Job是执行的具体任务,它是实现了`org.quartz.Job`接口的类...

Global site tag (gtag.js) - Google Analytics