import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloQuartz implements Job {
public void execute(JobExecutionContext context) throws
JobExecutionException {
JobDetail detail = context.getJobDetail();
String name = detail.getJobDataMap().getString("name");
System.out.println("say hello to " + name + " at " + new
Date());
}
}
这个例子很好的覆盖了 最重要的 个基本要素:
:调度器。所有的调度都是由它控制。
: 定义触发的条件。例子中,它的类型是
,每隔
秒中
执行一次(什么是
下面会有详述)。
!"
:
!
定义的是任务数据,而真正的执行逻辑是在
中,例子中是
#
。 为什么设计成
!$
,不直接使用
?这是因为任务是有可能并发执行,如果
直接使用
,就会存
在对同一个
实例并发访问的问题。而
!"
方式,
%
每
次执行,都会根据
!
创建一个新的
实例,这样就可以规避并发访问
的问题。
Quartz API
的 &'( 的风格在 ) 以后,采用的是 !* 风格(通常意味着 +,
,- 风格),就是示例中 ,./0那一段东西。它是通过 1 实现的,
就是以下几个。(22下面大部分代码都要引用这些 1220
//job
相关的
builder
import static org.quartz.JobBuilder.*;
//trigger
相关的
builder
import static org.quartz.TriggerBuilder.*;
import static org.quartz.SimpleScheduleBuilder.*;
import static org.quartz.CronScheduleBuilder.*;
import static org.quartz.DailyTimeIntervalScheduleBuilder.*;
import static org.quartz.CalendarIntervalScheduleBuilder.*;
//
日期相关的
builder
import static org.quartz.DateBuilder.*;