Quartz的API简介及Jobs和Trigger介绍

Quartz的API:

    主要api:

    The key interfaces of the Quartz API are:

      • Scheduler - the main API for interacting with the scheduler.(最后日程启动API)

      • Job - an interface to be implemented by components that you wish to have executed by the scheduler.(需要实现的任务API)

      • JobDetail - used to define instances of Jobs.(任务实例的API)

      • Trigger - a component that defines the schedule upon which a given Job will be executed.(触发器API)

      • JobBuilder - used to define/build JobDetail instances, which define instances of Jobs. (JobDetail的定义)

      • TriggerBuilder - used to define/build Trigger instances.(Trigger的定义) 

            Scheduler 的生命周期受它的创建限制,通过一个 SchedulerFactory 和对其 shutdown() 方法的调用。一旦创建了调度程序接口,就可以使用添加、删除   和列出作业和触发器,并执行其他与调度相关的操作(例如暂停触发器)。但是,调度器实际上不会在任何触发器(执行作业)上起作用,直到它从 start() 方法开    始。

Jobs和Triggers

    当作业的触发器触发时(稍后会详细说明),execute(..) 方法由一个调度程序的工作线程调用。传递给该方法的 JobExecutionContext 对象提供了有关其“运行时”环境的信息的作业实例——执行它的调度程序的句柄、触发执行的触发器的句柄、作业的 JobDetail 对象和其他一些项。

    JobDetail 对象是由 Quartz 客户机(您的程序)在任务添加到调度器时创建的。它包含作业的各种属性设置,以及 JobDataMap,它可以用来存储作业类的给定实例的状态信息。它本质上是作业实例的定义。

    触发器(Trigger)对象用于触发作业的执行(或“触发”)。当您希望调度作业时,您将实例化一个触发器并“调整”其属性,以提供您希望拥有的调度。触发器也可能有与它们相关联的JobDataMap——这对于将参数传递给特定于触发器触发的作业是有用的。带有少量不同触发器类型的Quartz船,但最常用的类型是SimpleTrigger和CronTrigger。

    如果您需要“一次性”执行(仅在给定时刻执行一项任务),或者您需要在给定的时间内解雇一份工作,并且重复执行N次,在执行期间延迟执行,那么 SimpleTrigger 非常方便。如果你希望基于日历的日程安排(比如“每个周五,中午”或“每月10日10时15分”触发,CronTrigger 是很有用的。

Identities

    Job 和 触发器(Triggers) 被赋予标识键(Identities),当它们在 Quartz 调度器中注册时。 
    Job 和触发器的关键(JobKey和TriggerKey)允许它们被放置到“组”(Group)中,这些“组”对组织工作和触发“报告工作”和“维护工作”等类别非常有用。 
    作业或触发器的键的名称部分必须在组内是惟一的,或者换句话说,作业或触发器的完整密钥(或标识符)是名称和组的复合。

原文地址:https://www.cnblogs.com/goxcheer/p/9284334.html