简述:
在一的基础上实现一个定时输出的程序
项目结构:
代码:
TestJob.java 实现Job接口,定义输出
package com.anialy.tq;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class TestJob implements Job {
private static int cnt = 0;
public TestJob() {
// Instances of Job must have a public no-argument constructor.
}
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
System.out.println("TestJob " + (++cnt) + " Run! ");
}
}
TestQurtz.java 主程序(注意要static导入包,同时将scheduler的shutdown注释掉)
package com.anialy.tq;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
public class TestQuartz {
private static Scheduler scheduler;
public static void main(String[] args) {
try {
// Grab the Scheduler instance from the Factory
scheduler = StdSchedulerFactory.getDefaultScheduler();
// Set Scheduler
setScheduler();
// and start it off
scheduler.start();
//shutdown to see the output of TestJob
// scheduler.shutdown();
} catch (SchedulerException se) {
se.printStackTrace();
}
}
private static void setScheduler(){
// define the job and tie it to our TestJob class
JobDetail job = newJob(TestJob.class)
.withIdentity("job1", "group1")
.build();
// Trigger the job to run now, and then repeat every 5 seconds
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(5)
.repeatForever())
.build();
// Tell quartz to schedule the job using our trigger
try {
scheduler.scheduleJob(job, trigger);
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
输出: