所有的要 Quartz 来执行的作业必须通过调度器来注册。大多情况下,这会在调度器启动前做好。正如前面说过,这一操作也提供了声明式与编程式两种实现途径的选择。
因为每一个 Job 都必须用 Scheduler 来注册,所以先定义一个 JobDetail,并关联到这个 Scheduler 实例。
下面的程序提供了一个理解如何编程式安排一个 Job 很好的例子。代码首先调用 createScheduler() 方法从 Scheduler 工厂获取一个 Scheduler 的实例。得到 Scheduler 实例之后,把它传递给 schedulerJob() 方法,由它把 Job 同 Scheduler 进行关联。
首先,创建了我们想要运行的 Job 的 JobDetail 对象。JobDetail 构造器的参数中包含指派给 Job 的名称,逻辑组名,和实现 org.quartz.Job 接口的全限类名称。我们可以使用 JobDetail 的别的构造器。
在前面有说过,JobDetail 扮演着某一 Job 定义的角色。它带有 Job 实例的属性,能在运行时被所关联的 Job 访问到。其中在使用 JobDetail 时,的一个最重要的东西就是 JobDataMap,它被用来存放 Job 实例的状态和参数。在代码中,待扫描的目录名称就是通过 scheduleJob() 方法存入到 JobDataMap 中的。
Job 只是一个部分而已。注意我们没有在 JobDetail 对象中为 Job 设定执行日期和次数。这是 Quartz Trigger 该做的事。顾名思义,Trigger 的责任就是触发一个 Job 去执行。当用 Scheduler 注册一个 Job 的时候要创建一个 Trigger 与这个 Job 相关联。Quartz 提供了四种类型的 Trigger,但其中两种是最为常用的,它们就是在下面要用到的 SimpleTrigger 和 CronTrigger.
SimpleTrigger 是两个之中简单的那个,它主要用来激发单事件的 Job,Trigger 在指定时间激发,并重复 n 次--两次激发时间之间的延时为 m,然后结束作业。CronTrigger 非常复杂且强大。它是基于通用的公历,当需要用一种较复杂的时间表去执行一个 Job 时用到。例如,四月至九月的每个星期一、星期三、或星期五的午夜。
为更简单的使用 Trigger,Quartz 包含了一个工具类,叫做 org.quartz.TriggerUtils. TriggerUtils 提供了许多便捷的方法简化了构造和配置 trigger. 本文的例子中有用的就是 TriggerUtils 类;SimpleTrigger 和 CronTrigger 会在后面用到。
正如你看到的那样,调用了 TriggerUtils 的方法 makeSecondlyTrigger() 来创建一个每10秒种激发一次的 trigger(实际是由 TriggerUtils 生成了一个 SimpleTrigger 实例,但是我们的代码并不想知道这些)。我们同样要给这个 trigger 实例一个名称并告诉它何时激发相应的 Job;与之关联的 Job 会立即启动,因为由方法 setStartTime() 设定的是当前时间
分享到:
相关推荐
Quartz:强大而灵活的Java任务调度框架 一、引言 随着现代Web应用程序框架的不断发展,其范围和复杂性也在逐步提升,这就要求应用程序的每个底层组件也必须相应地进化。作业调度作为现代系统中对Java应用程序的一项...
Quartz简介 Quartz是Java平台上的一个全面且功能强大的任务调度库,它支持程序化和声明式的任务调度。Quartz的核心特性包括: - 定时器:可以设置定时任务,如每隔一段时间执行一次。 - 触发器:控制任务何时开始...
1. **Quartz简介** Quartz是一个开源的作业调度库,它允许开发人员将作业和触发器定义并排程到一个可持久化的存储中。这些作业可以在预定的时间或基于某些触发条件执行。Quartz具有高度的可扩展性,支持多线程和...
#### 一、Quartz简介 Quartz是一个完全由Java编写的开源作业调度框架,适用于多种Java应用程序环境,包括但不限于J2SE、Web应用以及J2EE应用服务器。它提供了一种简单而灵活的方式来定义、调度和管理各种定时任务。...
Quartz简介** Quartz是Java平台上的一款开源的、功能丰富的作业调度框架,它可以精确地安排任务执行。Quartz支持简单和复杂的调度策略,如定时、一次性、按需执行等,并且可以与其他Java应用无缝集成。 **3. 集成...
一、Quartz简介 Quartz是Java平台上的作业调度库,它可以被用来创建、调度和执行计划任务。Quartz的核心是Job和Trigger。Job代表要执行的任务,Trigger则是调度Job执行的时间规则。Quartz通过Scheduler对象管理和...
1. **Quartz简介** Quartz是一个功能强大且灵活的作业调度库,它允许开发者定义定时任务并安排它们在未来的某个时间点执行。Quartz支持Cron表达式,这是一种强大的时间表定义方式,可以精确地控制任务的执行频率。 ...
1. **Quartz简介** Quartz是一个高度可扩展的任务调度框架,它提供了一种灵活的方式来安排和执行作业。作业是需要执行的任务,而触发器则决定了何时执行这些作业。Quartz支持多种触发器类型,如简单触发器、cron...
一、Quartz简介 Quartz是一个完全由Java编写的开源作业调度框架,它可以用来安排和执行应用程序中的周期性任务。它提供了丰富的API,支持简单的单次执行任务,也支持复杂的作业和触发器组合。Quartz还具备可扩展性和...
### Quartz简介 Quartz 提供了一个完全线程化的事件调度器,支持复杂的时间表和触发器,可以实现精确的任务调度。它支持Cron表达式,可以方便地设置任务执行的时间规则。同时,Quartz还提供了持久化能力,即使应用...
一、Quartz简介 Quartz是由OpenSymphony开源组织开发的一款开源的作业调度框架,它提供了丰富的API,使得开发者能够方便地创建、管理和执行定时任务。Quartz支持多种触发器类型,如SimpleTrigger、CronTrigger等,...
1. **Quartz简介** - Quartz是Cron-like和Calendar-based作业调度的Java实现,它允许开发人员在应用程序中定义、安排和执行任务。 - 作为轻量级的调度框架,Quartz可以非常方便地集成到任何Java应用中,无论是简单...
1. **Quartz简介** Quartz是James House开发的,它提供了全面的调度功能,包括可持久化、集群、多线程和非常易用的API。它的核心设计允许开发者创建、调度和管理作业与触发器,以实现应用程序中的定时任务。 2. **...
1. **Quartz简介** Quartz是Cron-like和Calendar-based任务调度库,用于在Java应用程序中安排和管理作业。它提供了丰富的API,使得创建、调度和管理任务变得简单易行。Quartz支持集群,可以在多个服务器之间共享...
一、Quartz简介 Quartz是James House开发的一款强大的、完全的、开源的作业调度框架,它基于Java,适用于小型到大型的企业级应用。Quartz可以被用来执行一次性的任务,也可以按照设定的时间间隔重复执行任务,例如...
一、Quartz简介 Quartz是由Caledonia Software公司开发的Java定时任务库,它提供了一种高度可配置的方式来安排和执行工作。Quartz支持简单的定时任务以及复杂的调度策略,如cron表达式和基于日期的时间触发器。它...
1. **Quartz简介** Quartz是一个强大的、完全开源的作业调度框架,它支持复杂的调度策略,如按日期、时间间隔或自定义表达式执行。Quartz可以在Java应用中作为独立的服务运行,也可以与Spring框架无缝集成。 2. **...
1. **Quartz简介**:Quartz是开源的作业调度框架,它允许应用程序定义和调度任务,以便在特定的时间点或按照特定的周期执行。Quartz支持CRON表达式,可以创建基于时间的复杂调度规则。 2. **Spring与Quartz的集成**...
一、Quartz简介 Quartz是一个轻量级的作业调度库,适用于Java应用。它允许开发者创建、调度和管理任务,这些任务可以在预设的时间点或按照特定的间隔执行。Quartz支持多种调度策略,如简单的定时任务、CRON表达式...
1. **Quartz简介** - Quartz是一个完全由Java编写的、基于JDBC的作业调度库,它能够在Java应用中实现精确的定时任务调度。 - 它支持 cron 表达式、简单计划器以及自定义调度策略,满足各种复杂的需求。 - Quartz...