quartz的一些基本概念
Job 与 JobDetail
Job是quartz中最基本的概念了,Job做为一个接口只有一个execute()方法等待实现,理论上所有用quartz执行的job都需要实现这个接口,但是现在大多数的系统都不会服从这种约束,而希望能够更自由的调用原有系统中的类的方法。实现自由调用,有两个途径,我上一节总结中的那个方案是一个简单的途径,另外一个途径就是借助于spring的class bean,这个将在后面介绍。
StatefullJob接口: 无状态任务对应的JobDataMap可以认为是只读的,而有状态的任务在多次执行过程中保留对JobDataMap所作的修改,一个后果是有状态任务无法被并发执行。上面这句话是抄袭的,事实上我还是不是很清楚二者究竟的区别?
JobDetail是用来包装Job实例的具体细节的。Job以class的方式传入JobDetail,quartz会自动实例化Job类的。同时需要规定job的name和group,在jobdetail的validate()下,一个job是必须有name和group属性,并且二者组合标示唯一的job。JobDetail中的一些重要数据存放在JobDataMap中,这个map可以用来在控制程序和job内传递需要传递的参数。
JobDetail还有三个重要的boolean值的属性,分别是durability、volatility、shouldRecover。这三个属性默认是false,主要在数据库操作的时候起作用。
Trigger时间调度
相对于job,trigger简单一些。所谓的时间调度,就是设置job执行的时间表。Trigger主要分为SimpleTrigger和CronTrigger两大类。前者主要是以1/1000
为单位的简单时间,可是设置startTime、endTime、repeatCount、repeatInterval等主要参数。CronTrigger的详细用法参看quartz文档的的CronTriggers Tutorial。
scheduler.schedulerJob(jobDetail, trigger);将JobDetail和对应的Trigger部署到scheduler中,然后根据trigger的定义,自动执行指定job。
Calendar这个类用来标识出特殊的时间,scheduler根据trigger执行job的时候,如果遇到这些标识出的特殊时间则不执行job。Calendar具体的接口有BaseCalendar、AnnualCalendar、HolidayCalendar、MonthlyCalendar、WeeklyCalendar等等。calendar的具体用法参看quartz的文档。
Misfire Instruction....设定当trigger错过了触发时刻的时候需要采取的处理策略
TriggerUtils相当于一个trigger factory,方便我们取得特殊trigger的实例,而不用自己去构造。
Listener是用来监听quartz的执行过程的,主要有JobListener,TriggerListener,SchedulerListener。joblistener监听一个job在quartz中执行的待执行,禁止执行,执行完毕三个状态。TriggerListener监听trigger触发、完成、错过、禁止四个状态。SchedulerListener监听scheduler执行过程的一些状态,具体参看SchedulerListener的源代码。
分享到:
相关推荐
里面有个简单的quartz-scheduler java示例。
Maven坐标:org.quartz-scheduler:quartz:2.3.0; 标签:scheduler、quartz、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的...
Maven坐标:org.quartz-scheduler:quartz:2.3.2; 标签:scheduler、quartz、jar包、java、中英对照文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中...
该压缩包内包含两个quartz的jar包, 分别是quartz-1.6.0.jar和quartz-all-1.6.0.jar
Maven坐标:org.quartz-scheduler:quartz:2.3.2; 标签:quartz、scheduler、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的...
Maven坐标:org.quartz-scheduler:quartz:2.3.0; 标签:scheduler、quartz、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译...
请注意,由于以下原因,它被命名为akka-quartz-scheduler并被定位为目标:它不是Quartz的完整端口。 相反,我们利用Quartz的调度系统的概念为Akka提供了比现有的调度组件更健壮和可靠的调度组件。 这里的目标是为...
quartz quartz-1.8.6 dbTables quartz动态任务调度需要的数据库脚本。
看起来是2017年的quartz-2.3.0版,官网地址https://github.com/quartz-scheduler/quartz/wiki
quartz-2.4.0-SNAPSHOT-distribution.tar.gz包,解压后可查看里面的simple
quartz-all-1.6.3.jar
Getting_Started_with_Quartz_Scheduler.pdf Version 2.2.1
git clone https://github.com/quartz-scheduler/quartz ${quartz-version} # If you are on Windows, you would want to use "cp -r" instead of "ln -s" ln -s ${quartz-version} /docs ../documentation/ ${...
quartz-2.2.1 最新包
quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar
quartz-2.2.3版本的quartz初始化sql语句
quartz-all-2.1.5
quartz:是一个任务调度框架,通过触发器设置作业的定时运行规则,来执行定时任务。相当于数据库中的 Job、Windows 的计划任务、Unix/Linux 下的 Cron,但 Quartz 可以把排程控制的更精细。把一系列任务自动安置到一...
quartz-2.1.1 的所有jar包 quartz-2.1.1.jar quartz-all-2.1.1.jar quartz-backward-compat-2.1.1.jar quartz-commonj-2.1.1.jar quartz-examples-2.1.1.jar quartz-jboss-2.1.1.jar quartz-oracle-2.1.1.jar quartz...
quartz-1.8.4.jar