一.介绍Quartz框架。
- Quartz是一个任务日程管理系统,这个系统可以与任何其他软件系统集成或者一起使用。,“任务进度管理器”
- 就是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。
- 为了达到预想目的,或者是能够写出与工程最“自然”衔接的软件代码,Quartz相地灵活,并且包括了多个用法范例,可以单独运用这些范例或者组合运用这些范例。
- Quartz相当“轻量”,并且需要非常少的步骤/配置,如果需求比较基本,Quartz确实非常容易使用。
- Quartz具有容错性,并且可以在你系统重起的时候持久化(记住)被纳入日程的任务。
- 虽然Quartz对于按照简单地给定日程运行的系统时非常有用,但是,当你学会如何使用它来驱动你应用中的商务
- 过程,那么你才会认识到它的全部潜能。
二.下载准备
- http://www.opensymphony.com/quartz/是Quartz的家。在这个地方你可以取得Quartz的最新下载文件、文档等
- 一切你需要的信息。
- Quartz 1.x(.zip) – zip格式的主Quartz包。(主要为Windows用户准备)
- Quartz 1.4.3 (.tar.gz) - in tar/gzip主Quartz包。(主要为*nix用户准备)
- Quartz Web-App - Quartz web应用,它能让你通过web接口来监控scheduler。
三.体验quartz的HelloWorld程序
- import java.util.Date;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerException;
- import org.quartz.impl.StdSchedulerFactory;
- public class SimpleScheduler {
- static Log logger = LogFactory.getLog(SimpleScheduler.class);
- public static void main(String[] args) {
- SimpleScheduler simple = new SimpleScheduler();
- simple.startScheduler();
- }
- public void startScheduler() {
- Scheduler scheduler = null;
- try {
- // Get a Scheduler instance from the Factory
- scheduler = StdSchedulerFactory.getDefaultScheduler();
- // Start the scheduler
- scheduler.start();
- JobDetail jobDetail = new JobDetail("jobName", // job名
- Scheduler.DEFAULT_GROUP, // job组(你可以指定为'null'以使
- 用缺省的组)
- DumbJob.class); //要被执行的Java类。
- String[] trigersName = scheduler.getTriggerNames
- (Scheduler.DEFAULT_GROUP);
- Trigger trigger;
- trigger =
- new SimpleTrigger("triggerName",
- Scheduler.DEFAULT_GROUP, new Date(), null,
- 200,
- 50000L);
- scheduler.scheduleJob(jobDetail, trigger);
- logger.info("Scheduler started at " + new Date());
- } catch (SchedulerException ex) {
- // deal with any exceptions
- logger.error(ex);
- }
- }
- }
- 继续:
- import java.util.Date;
- import org.quartz.Job;
- import org.quartz.JobExecutionContext;
- import org.quartz.JobExecutionException;
- public class DumbJob implements Job{
- public DumbJob() {
- }
- public void execute(JobExecutionContext context)
- throws JobExecutionException {
- System.out.println( " Generating report - "
- + context.getJobDetail().getJobDataMap().get( "type" )
- + new Date());
- //System.err.println("DumbJob is executing.");
- }
- }
- 四.体验quartz的HelloWorld程序
- 这段程序非常简单。我们首先建立一个job名字为JobName。一个trigger,名字为triggerName。其次设定触发时间。最后每次触发job都执行一段System.out信息。
- 注意:这里没有介绍Quartz的配置文件。只是体验一下Quartz的功能。具体Quartz配置会在后面进行介绍。
- 当然具体包的版本可能随着Quartz的升级都不会一样,但是这些包都需要,版本参看你下载的Quartz包中lib文
- 件夹下的具体版本jar包。
- <QUARTZ_HOME>\lib\core
- <QUARTZ_HOME>\lib\optional
- <QUARTZ_HOME>\lib\build
- 上面那些jar包都可以在这3个地方找到。
- 本篇内容主要是
- 1、介绍Quartz框架。
- 2、体验quartz的HelloWorld程序
- 3、介绍Quartz使用的第三方库文件。
- 下一节中我们会介绍具体Quartz的配置及Quartz中Job的介绍。