所有的要 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() 设定的是当前时间
分享到:
相关推荐
此ppt展示了Quartz调度的一些只是,看看吧
Quartz使用方法Quartz使用方法Quartz使用方法Quartz使用方法Quartz使用方法
本文档包含以下章节:1、quartz简介;2、quartz快速入门;3、quartz核心API详解;4、quartz.properties配置详解;5、quartz持久化;6、quartz集群部署;7、springboot整合quartz。8、常见分布式调度框架的比较;
spring定时计划讲义,任务调度简介Quartz简介 在Spring中使用Quartz
Quartz功能简介:介绍Quartz的特点及概念。 使用Quartz的常见问题:很多用户在使用过程中遇到常见问题的解答。 快速开始:让读者尽快掌握Quartz开发。 :通过一些列的课程来指导如何使用Quartz.
Quartz的原理简介,可以实现任务的调度和定时的添加,在文中给了基础的使用方法的代码展示!!!!
Quartz功能简介 :介绍Quartz的特点及概念。 使用Quartz的常见问题 :很多用户在使用过程中遇到常见问题的解答。 快速开始:让读者尽快掌握Quartz开发。 Quartz官方开发指南:通过一些列的课程来指导如何使用Quartz.
简介: Quartz 是个开放源码项目,提供了丰富的作业调度集。
Quartz Job Scheduling Framework[翻译]第一章. 企业应用中的作业调度 2007年11月18日 星期日 下午 12:22第一章. 企业应用中的作业调度 ·什么是作业调度 ·作业调度为什么说是重要的 ·企业应用中的作业调度 ·...
Quartz功能简介:介绍Quartz的特点及概念。 使用Quartz的常见问题:很多用户在使用过程中遇到常见问题的解答。 快速开始:让读者尽快掌握Quartz开发。 :通过一些列的课程来指导如何使用Quartz.
Quartz是OpenSymphony开源组织的一个Java开源项目,在2009被Terracotta收购。Quartz官网 Quartz任务调度的主要元素有: Trigger(触发器) Scheduler(任务调度器) Job(任务) 其中Tri
quartz应用实例,讲述了quartz的几种用法,清晰,简介
Quartz功能简介 :介绍Quartz的特点及概念。 使用Quartz的常见问题 :很多用户在使用过程中遇到常见问题的解答。 快速开始:让读者尽快掌握Quartz开发。 :通过一些列的课程来指导如何使用Quartz.
ArcGIS Runtime for .Net Quartz开发探秘(一):ArcGIS Runtime SDK for .Net简介及开发必要准备-附件资源
简介 分布式、多租户的支持流程编排的任务调度应用 同时支持Redis分布式锁和Quartz数据库悲观锁 基于camunda工作流引擎,支持工作流式的任务编排 基于Spring Boot框架开发,对微服务友好 支持Mysql/Oracle/Sql ...
平台简介 一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套后台系统。如此有了若依。她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS...
项目简介基于SpringBoot 2.x整合各种常用开发工具,包括但不限于Redis,MyBatisPlus,RocketMQ,RabbitMQ,Elasticsearch,Quartz,Xxl-Job,Kafka等。参考教程序号文章标题000102030405060708091011121314...