简介:
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz 的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。虽然可以通过属性文件(在属性文件中可以指定 JDBC 事务的数据源、全局作业和/或触发器侦听器、插件、线程池,以及更多)配置 Quartz,但它根本没有与应用程序服务器的上下文或引用集成在一起。结果就是作业不能访问 Web 服务器的内部函数;例如,在使用 WebSphere 应用服务器时,由 Quartz 调度的作业并不能影响服务器的动态缓存和数据源。
本文使用一系列代码示例介绍 Quartz API,演示它的机制,例如作业、触发器、作业仓库和属性。
入门
要开始使用 Quartz,需要用 Quartz API 对项目进行配置。步骤如下:
下载 Quartz API:
http://www.opensymphony.com/quartz/download.action。
解压缩并把 quartz-x.x.x.jar 放在项目文件夹内,或者把文件放在项目的类路径中。
把 core 和/或 optional 文件夹中的 jar 文件放在项目的文件夹或项目的类路径中。
如果使用 JDBCJobStore,把所有的 JDBC jar 文件放在项目的文件夹或项目的类路径中。
下载带JAR的示例:
http://download.boulder.ibm.com/ibmdl/pub/software/dw/java/j-quartz-withJars.zip
简单触发器
public class SimpleTriggerRunner {
public void task() throws SchedulerException
{
// Initiate a Schedule Factory
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
// Retrieve a scheduler from schedule factory
Scheduler scheduler = schedulerFactory.getScheduler();
// current time
long ctime = System.currentTimeMillis();
// Initiate JobDetail with job name, job group, and executable job class
JobDetail jobDetail = new JobDetail("jobDetail-s1", "jobDetailGroup-s1", SimpleQuartzJob.class);
// Initiate SimpleTrigger with its name and group name
SimpleTrigger simpleTrigger = new SimpleTrigger("simpleTrigger", "triggerGroup-s1");
// set its start up time
simpleTrigger.setStartTime(new Date(ctime));
// set the interval, how often the job should run (10 seconds here)
simpleTrigger.setRepeatInterval(10000);
// set the number of excution of this job, set to 10 times. It will run 10 time and exhaust.
simpleTrigger.setRepeatCount(100);
// set the ending time of this job. We set it for 60 seconds from its startup time here
// Even if we set its repeat count to 10, this will stop its process after 6 repeats
// as it gets it endtime by then.
//simpleTrigger.setEndTime(new Date(ctime + 60000L));
// set priority of trigger. If not set, the default is 5
//simpleTrigger.setPriority(10);
// schedule a job with JobDetail and Trigger
scheduler.scheduleJob(jobDetail, simpleTrigger);
// start the scheduler
scheduler.start();
}
public static void main (String args[])
{
try {
SimpleTriggerRunner qRunner = new SimpleTriggerRunner();
qRunner.task();
} catch (Exception e)
{
e.printStackTrace();
}
}
}
另一种复杂触发器 可以接受一个表达式进行设定何时执行
JobDetail jobDetail = new JobDetail("jobDetail3", "jobDetailGroup3", SimpleQuartzJob.class);
// Initiate CronTrigger with its name and group name
CronTrigger cronTrigger = new CronTrigger("cronTrigger3", "triggerGroup3");
try {
// setup CronExpression
CronExpression cexp = new CronExpression("0/5 * * * * ?");
// Assign the CronExpression to CronTrigger
cronTrigger.setCronExpression(cexp);
} catch (Exception e) {
e.printStackTrace();
}
// schedule a job with JobDetail and Trigger
scheduler.scheduleJob(jobDetail, cronTrigger);
// start the scheduler
scheduler.start();
CronExpression 表达式语法详解见下一文:
http://just4java.iteye.com/blog/582119
Quartz 的内存 Job 存储有两种方式:RAMJobStore 和JobStoreTX 详解见:
http://just4java.iteye.com/blog/582199
just4java.iteye.com
分享到:
相关推荐
Quartz作业调度框架
NULL 博文链接:https://403018322.iteye.com/blog/1613610
Quartz,作业调度框架,简单的作业调度,定时,junit测试quartz
Quartz是一个开源的作业调度框架,一些研究和说明
Quartz是一个开源的作业调度框架
个人工作积累,一个不错的Quartz.Net开源作业调度框架
1.spring框架使用任务调度quartz的例子。 2.Web App用Quartz实现java schedule 3.详细讲解Quartz如何从入门到精通 4.用 Quartz 进行作业调度
Quartz是一个完全开源的作业调度框架。
企业应用中的作业调度 2007年11月18日 星期日 下午 12:22第一章. 企业应用中的作业调度 ·什么是作业调度 ·作业调度为什么说是重要的 ·企业应用中的作业调度 ·非企业应用中的作业调度 ·作业调度与工作流 ·...
Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz允许开发人员根据时间间隔来调度作业。它实现了作业和触发器的多对多的关系,还能把多个作业与不同的...
NULL 博文链接:https://zhangyumeng.iteye.com/blog/286528
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的...
前言:8月份翻译了Quartz.NET的官方课程:开源的作业调度框架 - Quartz.NET, 有的朋友抱怨难用,确实,目前Qiartz.NET的最新版本还是0.6,还存在很多bug和不完善的地方。本文使用一系列代码示例介绍 Quartz.NET API...
基于 ADF 框架 + Quartz框架 开发的一套界面可操作的作业调度程序。 界面: 1. 输入:支持 cron表达式; 2. 支持定时调用服务; 3. 支持定时调用数据库脚本(存储过程等); 4. 界面可以查看当前运行的后台作业; 5....
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz框架包含了调度器监听、作业和触发器监听。你可以配置作业和触发器监听为全局监听或者是特定于作业和触发器的监听...
主要为大家详细介绍了Quartz.Net调度框架的配置方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下