文章目录

Quartz是经典的Java版开源定时调度器,项目中作为作业调度管理进行使用。由于之前项目出过一次异常,调试跟进了Quartz中,研究了一下其源码和原理
几个关键概念:
1、Job
表示一个工作,要执行的具体内容。此接口中只有一个方法
void execute(JobExecutionContext context)

2、JobDetail
JobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。

3、Trigger代表一个调度参数的配置,什么时候去调。

4、Scheduler代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合,就可以被Scheduler容器调度了。

最简单的HelloWorld示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public  class  HelloWorldMain {
Log log = LogFactory.getLog(HelloWorldMain. class );

public void run() {
try {
//取得Schedule对象
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sch = sf.getScheduler();

JobDetail jd = new JobDetail( "HelloWorldJobDetail" ,Scheduler.DEFAULT_GROUP,HelloWorldJob. class );
Trigger tg = TriggerUtils.makeMinutelyTrigger( 1 );
tg.setName( "HelloWorldTrigger" );

sch.scheduleJob(jd, tg);
sch.start();
} catch ( Exception e ) {
e.printStackTrace();

}
}
public static void main(String[] args) {
HelloWorldMain hw = new HelloWorldMain();
hw.run();
}
}

文章目录