package test;
import java.text.ParseException;
import java.util.Date;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
public class TestJob implements Job{
private static intcnt = 0;
@Override
public voidexecute(JobExecutionContext context) throws JobExecutionException {
System.out.println("TestJob" + (++cnt) + " Run! " +new Date());
Scheduler scheduler=context.getScheduler();//獲取執行的Scheduler
try {//執行3次之后關閉
if(!scheduler.isShutdown()&&cnt==3)//判斷是否在執行
scheduler.shutdown();
} catch(SchedulerException e) {
e.printStackTrace();
}
}
public static voidmain(String [] args) throws SchedulerException, ParseException{
SchedulerFactoryschedFact = new org.quartz.impl.StdSchedulerFactory();
Scheduler sched = schedFact.getScheduler();
sched.start();//調度器啟動
// 參數:任務名,任務組,任務執行類 ,任務執行類決定執行哪個execute方法
JobDetail jobDetail = new JobDetail("TestJob",
"TestJobGroup", TestJob.class);
//觸發器
CronTrigger trigger = newCronTrigger("TestJob","TestJobGroup");// 觸發器名,觸發器組
//觸發事件設定
trigger.setCronExpression("0/3 * * * * ? ");//每3s執行一次
//將任務和觸發器加入調度器,會執行execute方法
sched.scheduleJob(jobDetail, trigger);
}
}
網上找教程,大致實現了功能,觸發器的時間設置詳解鏈接為:
http://www.open-open.com/lib/view/open1392211610489.html
大致理解:格式 [秒] [分] [小時] [日] [月] [周] [年]
0/n在 分 位置表示每幾分鐘執行一次
0/n在 時 位置表示每幾小時執行一次
其余相同,*通配符,?表示不確定