您的位置:首页 > 编程语言 > Java开发

[译]Java定时任务调度-Quartz文档(一)初步使用

2017-03-10 11:01 489 查看
首先来段官方的介绍:

Quartz是一个功能强大的开源任务调度框架,可以集成到任意的java应用中,从最小的java应用到最发杂的电商系统都可以。Quartz可以用来创建数十、数百或者成千上万的简单或者复杂的任务;任务是标准的java组件形式,可以做你想做的任何事。Quartz的调度类还具有很多企业级类的特性,例如对JTA transactions的和集群的支持。

那么在我的项目中,就希望利用Quartz来管理任务,便于后期扩展。下面是对官方文档的直译,仅做学习交流之用。

课程 1: 初步使用Quartz

使用Scheduler(调度)之前,必须先初始化(这当然是废话)。初始化是通过SchedulerFactory完成的。有人喜欢使用JNDI 库中的工厂实例,而有些人则更倾向于直接初始化一个工厂实例。

Scheduler创建之后,就可以执行启动、关闭等操作了。注意一旦Scheduler被关闭,就无法再启动了,除非重新实例化一个Scheduler。Trigger(触发器)在Scheduler未启动或者暂停期间是不会启动的。

下面是一个简单的例子

SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();

Scheduler sched = schedFact.getScheduler();

sched.start();

// define the job and tie it to our HelloJob class
JobDetail job = newJob(HelloJob.class)
.withIdentity("myJob", "group1")
.build();

// Trigger the job to run now, and then every 40 seconds
Trigger trigger = newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(40)
.repeatForever())
.build();

// Tell quartz to schedule the job using our trigger
sched.scheduleJob(job, trigger);


在这个例子中首先实例化了一个工厂,然后从工厂实例化了一个Scheduler。接着定义了一个job和一个trigger,最后调度起来,任务就跑起来了。

原文:

http://www.quartz-scheduler.org/

http://www.quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/tutorial-lesson-01.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息