Quartz
内的关键对象
Schedule,Job,Trigger,JobExecutionContext等对象
Quartz的使用:
1.导入Quartz所需的两个jar包
quartz-2.2.1.jar
quartz-jobs-2.2.1.jar
http://blog.csdn.net/chenweitang123/article/details/37777399
内的关键对象
Schedule,Job,Trigger,JobExecutionContext等对象
Quartz的使用:
1.导入Quartz所需的两个jar包
quartz-2.2.1.jar
quartz-jobs-2.2.1.jar
2.创建Job类HelloJob进行简单的输出
package com.shenht.test;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloJob implements Job{
private static Logger _log = LoggerFactory.getLogger(HelloJob.class);
//Job需要一个公有的构造方法,否则Factory无法构建
public HelloJob(){
}
//实现execute()方法
public void execute(JobExecutionContext context) throws JobExecutionException{
_log.info("Hello World!-"+new Date());
}
}
3.创建自己定义的Job运行的例子,在下一分钟执行自己定义的Job
package com.shenht.test;
import static org.quartz.DateBuilder.evenMinuteDate;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.ScheduleFactory;
.
.
.
/*
*
*演示如何启动和关闭Quartz调度器,及如何运作
*
*/
public class QuartzTest{
public void run() throws Exception{
Logger log = LoggerFactory.getLogger(QuartzTest.class);
log.info("----- Initializing -----");
//1.工厂模式 构建Scheduler的Factory,其中STD为Quartz默认的Factory,开发者亦可自行实现自己的Factory;Job,Trigger等组件
ScheduleFactory sf = new StdSchedulerFactory();
//2.通过SchedulerFactory构建Scheduler对象
Scheduler sched = sf.getScheduler();
log.info("----- Initializing Complete -----");
//3. org.quartz.DateBuilder.eventMinuteDate --通过DateBuilder构建Date
Date runTime = evenMinuteDate(new Date());
log.info("----- Scheduling Job -----");
//4. org.quartz.JobBuilder.newJob<下一分钟> --通过JobBuilder构建Job
JobDetail job = newJob(Hello.class).withIdentity("job1","group1").build();
//5. 通过TriggerBuilder进行构建Trigger
Trigger trigger = new Trigger.withIdentity("trigger1","group1").startAt(runTime).build();
//6. 工厂模式,组装各个组件<JOB,Trigger>
sched.scheduleJob(job,trigger);
//7.start
sched.start();
log.info("----- Started Scheduler -----");
log.info("----- Waiting 65 seconds -----");
try{
Thread.sleep(65L*1000L);
}catch(Exception e){
}
//8.通过Scheduler销毁内置的Trigger和Job
sched.shutdown(true);
}
public static void main(String[] args) throws Exception{
QuartzTest qzt = new QuartzTest();
qzt.run();
}
}
http://blog.csdn.net/chenweitang123/article/details/37777399
http://blog.csdn.net/chenweitang123/article/details/37837557
http://blog.csdn.net/su20145104009/article/details/72842526?locationNum=13&fps=1