第一课: 使用 Quartz
在你可以使用scheduler
[任务调度]之前,它需要被实例化(谁会猜到?)。要做到这一点,你需要用一个SchedulerFactory
[任务调度工厂]。部分Quartz用户可能会在JNDI存储上持有一个工厂实例,其他使用者可能发觉直接实例化和使用工厂实例同样容易(或更容易)(正如以下的例子)。
一旦一个sheduler
实例化,它就可以开始,处于待机状态,并可以关闭。注意到一旦一个sheduler
关闭,它就不能再重新启动,除非再实例化。Triggers
[触发器]在sheduler
开始之前,不会被触发(`jobs不会执行),在暂停状态也是如此。
这里是一个快速代码片段,实例化并启动一个sheduler
,并安排作业执行。
SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
Scheduler sched = schedFact.getScheduler();
sched.start();
// 定义job 并且绑定到 HelloJob 类
JobDetail job = newJob(HelloJob.class)
.withIdentity("myJob", "group1")
.build();
// 立刻触发job执行,并每40秒执行一次
Trigger trigger = newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(40)
.repeatForever())
.build();
// 告诉quartz 使用我们的触发器来执行job
sched.scheduleJob(job, trigger);
如你看到,用quartz相当简单。在第二课我们会快速概览Jobs
和Triggers
,并且Quartz
的API,让你可以更深入理解这个例子。
本文由博客一文多发平台 OpenWrite 发布!