quartz

(翻译)Quartz官方教程——第十一课:Quartz的其他特性

纵饮孤独 提交于 2019-12-01 17:27:07
插件 Quartz一个接口 (org.quartz.spi.SchedulerPlugin) 用于添加额外的功能。 在org.quartz.plugins包中可以找到Quartz自带的多种功能的插件。它们提供的功能包括调度程序启动时自动调度作业,记录作业历史记录和触发事件,以及调度器优雅关闭功能。 JobFactory 当触发器触发时,它所关联的作业通过Scheduler上配置的JobFactory实例化。默认的JobFactory只是在作业类上调用newInstance()方法。您可能希望创建自己的JobFactory实现来完成诸如让应用程序的IoC或DI容器生成/初始化作业实例等事情。 请参阅org.quartz.spi.JobFactory接口以及关联的Scheduler.setJobFactory(fact)方法。 Quartz自带的任务 Quartz还提供了一些实用的程序任务,您可以在应用程序中使用它来执行发送电子邮件和调用EJB等操作。这些开箱即用的作业可以在org.quartz.jobs包中找到。 来源: oschina 链接: https://my.oschina.net/u/2745108/blog/1799561

【转】Quartz教程七--TriggerListener和JobListener

拟墨画扇 提交于 2019-12-01 17:26:49
listener是一个对象,用于监听scheduler中发生的事件,然后执行相应的操作;你可能已经猜到了, TriggerListeners 接受与trigger相关的事件, JobListeners 接受与jobs相关的事件。 trigger相关的事件包括:trigger的触发、trigger错过触发(mis-fire)以及trigger的完成(即trigger触发的job执行完成)。 org.quartz.TriggerListener接口 public interface TriggerListener { public String getName(); public void triggerFired(Trigger trigger, JobExecutionContext context); public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context); public void triggerMisfired(Trigger trigger); public void triggerComplete(Trigger trigger, JobExecutionContext context, int triggerInstructionCode); } job相关的事件包括

(翻译)Quartz官方教程——第八课:SchedulerListeners

泄露秘密 提交于 2019-12-01 17:26:34
SchedulerListeners 与TriggerListeners和JobListeners很像,除了它是监听调度器本身的时间通知的——不跟特定的触发器或任务相关的事件。 调度器相关的时间包括:任务/触发器的添加和移除,调度器的严重错误,调度器被关闭的通知等等。 org.quartz.SchedulerListener接口如下所示: public interface SchedulerListener { public void jobScheduled(Trigger trigger); public void jobUnscheduled(String triggerName, String triggerGroup); public void triggerFinalized(Trigger trigger); public void triggersPaused(String triggerName, String triggerGroup); public void triggersResumed(String triggerName, String triggerGroup); public void jobsPaused(String jobName, String jobGroup); public void jobsResumed(String

Quartz教程四--Trigger介绍

ぃ、小莉子 提交于 2019-12-01 17:26:25
与job一样,trigger也很容易使用,但是还有一些扩展选项需要理解,以便更好地使用quartz。trigger也有很多类型,可以根据实际需要来选择。 最常用的两种trigger会分别在 教程五:SimpleTriggers 和 教程六:CronTrigger 中讲到; Trigger的公共属性 所有类型的trigger都有TriggerKey这个属性,表示trigger的身份;除此之外,trigger还有很多其它的公共属性。这些属性,在构建trigger的时候可以通过TriggerBuilder设置。 trigger的公共属性有: jobKey 属性:当trigger触发时被执行的job的身份; startTime 属性:设置trigger第一次触发的时间;该属性的值是java.util.Date类型,表示某个指定的时间点;有些类型的trigger,会在设置的 startTime 时立即触发,有些类型的trigger,表示其触发是在 startTime 之后开始生效。比如,现在是1月份,你设置了一个trigger–”在每个月的第5天执行”,然后你将 startTime 属性设置为4月1号,则该trigger第一次触发会是在几个月以后了(即4月5号)。 endTime 属性:表示trigger失效的时间点。比如,”每月第5天执行”的trigger,如果其 endTime

作业调度框架 Quartz 学习笔记(一) -- HelloWorld !!!

若如初见. 提交于 2019-12-01 17:25:53
关于定时任务的操作方法,java语言本身具有 Timer 来解决,但Timer 作用起来不是特别的舒服,由于项目的需要,使用了Quartz 这个调度框架,现把学习过程记录下来,方便以后查阅. 本教程是按照Quartz 提供的 15个Example 一步一步深入学习,由于我也是一菜鸟,在学习本教程时,如发现有错误之处,请各位大人指点.小弟不胜感激! 附几个连接: Timer 的问题: http://www.iteye.com/problems/90824 Quartz的下载: http://www.quartz-scheduler.org/ -----------------------------------------我是分割线---------------------------------- Quartz的下载看上面的连接,看不懂的,懒的去看的兄弟们,我传到了网盘上,附赠一点点资料. 地址 : http://pan.baidu.com/share/link?shareid=343136&uk=838886155 对于java开发的人来说,学习一个东西最好的例子就是" HelloWorld! "(不同意的,砖头不要飞过来).本次学习使用的版本为quartz-2.1.6 解压quartz-2.1.6.tar.gz . 目录结构简单的介绍下: doc : API 和

定时器(Quartz)快速入门

穿精又带淫゛_ 提交于 2019-12-01 17:25:16
摘要: Quartz是一个任务日程管理系统,这个系统可以与任何其他软件系统集成或者一起使用。术语“日程进度管理器”可能对于不同的人有不同的理解。当你阅读这个指南之后, 你会对这个术语有固定的理解。简而言之,“任务进度管理器”就是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。 Quartz概述 Quartz中的触发器 Quartz中提供了两种触发器,分别是CronTrigger和SimpleTrigger。 SimpleTrigger 每 隔若干毫秒来触发纳入进度的任务。因此,对于夏令时来说,根本不需要做任何特殊的处理来“保持进度”。它只是简单地保持每隔若干毫秒来触发一次,无论你的 SimpleTrigger每隔10秒触发一次还是每隔15分钟触发一次,还是每隔24小时触发一次。 CronTrigger 在特定“格林日历”时刻触发纳入进程的任务,因此,如果创建一个在每天上午10点触发的触发器,那么,在夏令时执行之前,系统将继续如此运作。但是,取决于是 春季还是秋季夏令时,因为对于特定的星期日,从星期六上午10点到星期日上午10点之间的时间间隔将不是24小时,而可能是23或者25个小时。 总之,如果你记住下面的两条规则,则会感觉良好并且很容易记忆: • SimpleTrigger 总是每隔若干秒触发,而同夏令时没有关系。 • CronTrigger

Spring整合Quartz分布式定时任务

醉酒当歌 提交于 2019-12-01 13:48:39
概述 虽然单个Quartz实例能给予你很好的Job调度能力,但它不能满足典型的企业需求,如可伸缩性、高可靠性满足。假如你需要故障转移的能力并能运行日益增多的 Job,Quartz集群势必成为你应用的一部分了。使用 Quartz 的集群能力可以更好的支持你的业务需求,并且即使是其中一台机器在最糟的时间崩溃了也能确保所有的 Job 得到执行。 Quartz 中集群如何工作 一个 Quartz 集群中的每个节点是一个独立的 Quartz 应用,它又管理着其他的节点。意思是你必须对每个节点分别启动或停止。不像许多应用服务器的集群,独立的 Quartz 节点并不与另一其的节点或是管理节点通信。Quartz 应用是通过数据库表来感知到另一应用的。 图:表示了每个节点直接与数据库通信,若离开数据库将对其他节点一无所知 创建Quartz数据库表 因为Quartz 集群依赖于数据库,所以必须首先创建Quartz数据库表。Quartz 包括了所有被支持的数据库平台的 SQL 脚本。在 <quartz_home>/docs/dbTables 目录下找到那些 SQL 脚本,这里的 <quartz_home> 是解压 Quartz 分发包后的目录。 这里采用的Quartz 2.2.3版本,总共11张表,不同版本,表个数可能不同。数据库为mysql,用tables_mysql_innodb.sql创建数据库表

Spring整合Quartz轻松完成定时任务

柔情痞子 提交于 2019-12-01 13:36:51
一、背景   上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等。 二、开发环境及必须jar包依赖 1.开发环境 Spring 4.2.6.RELEASE Maven 3.3.9 JDK 1.7 Idea 15.04 2.必不可少jar包依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.2.6.RELEASE</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency> 三、开发步骤 【1】.基于特定基类  1. 编写任务类,该类需要继承自QuartzJobBean 1 package com.hafiz.www.cron; 2 3 import org.quartz.JobExecutionContext; 4 import org.quartz

Quartz.net任务调度

自古美人都是妖i 提交于 2019-12-01 12:10:05
一、Quartz.net简介    Quartz.net是一个开源的任务调度框架,很多定时任务、调度任务都可以用这个框架,如定时日志等。 二、Quartz.net用途 定时给女朋友发送消息 女朋友生日的时候定时提醒 购物定时打折任务 三、Quartz.net实例 安装      Quartz.net 的安装通过 NuGet包管理 安装,打开 NuGet包管理,搜索 Quartz.net ,点击安装。 也可以在nuget控制台输入:Install-Package Quartz实现安装。 实现 继承IJob接口,实现Execute方法,以下是一个简单的定时写日志的实现 public class WriteLogJob : IJob { /// <summary> /// 实现接口 /// </summary> /// <param name="context"></param> /// <returns></returns> public Task Execute(IJobExecutionContext context) { Task task = null; try { string fileName = "quartzLog.txt"; using (StreamWriter writer = new StreamWriter(fileName, true)) { task =

testing camel quartz route

a 夏天 提交于 2019-12-01 11:29:20
I try to make a junit test for apache camel route. Something like this : @RunWith(CamelSpringJUnit4ClassRunner.class) @ContextConfiguration( loader = CamelSpringDelegatingTestContextLoader.class ) public class MyExportRouteBuilderIT extends CamelTestSupport { @Test public void test() { // trigger and check the files made by route builder processor } @Override protected RouteBuilder createRouteBuilder() throws Exception { return new MyExportRouteBuilder(); } } The builder class is defined like this from("quartz2://exportJob?cron=" + cronTrigger) .setHeader(FILE_NAME, expression(FILE_NAME_FORMAT