Quartz定時(shí)任務(wù)學(xué)習(xí)(一)簡(jiǎn)單任務(wù)
學(xué)習(xí)quartz首先了解三個(gè)概念:
調(diào)度器:負(fù)責(zé)調(diào)度作業(yè)和觸發(fā)器;
觸發(fā)器:設(shè)置作業(yè)執(zhí)行的時(shí)間、參數(shù)、條件等;(簡(jiǎn)單觸發(fā)器和Cron觸發(fā)器)
作業(yè):定時(shí)任務(wù)內(nèi)容,被執(zhí)行的程序;
下載必要的jar包,直接去官網(wǎng)下載,將quartz-x.x.x.jar 和core 和/或 optional 文件夾中的 jar 文件放在項(xiàng)目的文件夾或項(xiàng)目的類路徑中
開始:邊看例題邊學(xué)習(xí),首先從簡(jiǎn)單觸發(fā)器開始……
1、作業(yè)通過實(shí)現(xiàn) org.quartz.job
接口,可以使 Java 類變成可執(zhí)行的。這個(gè)類用一條非常簡(jiǎn)單的輸出語句覆蓋了 execute(JobExecutionContext context)
方法。
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class SimpleQuartzJob implements Job {
public SimpleQuartzJob() {
}
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("In SimpleQuartzJob - executing its JOB at "
+ new Date() + " by " + context.getTrigger().getName());
}
}
2、觸發(fā)器和調(diào)度器
public void task() throws SchedulerException
{
//通過SchedulerFactory來獲取一個(gè)調(diào)度器
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
//引進(jìn)作業(yè)程序
JobDetail jobDetail =
new JobDetail("jobDetail-s1", "jobDetailGroup-s1", SimpleQuartzJob.class);
//new一個(gè)觸發(fā)器
SimpleTrigger simpleTrigger =
new SimpleTrigger("simpleTrigger", "triggerGroup-s1");
//設(shè)置作業(yè)啟動(dòng)時(shí)間
long ctime = System.currentTimeMillis();
simpleTrigger.setStartTime(new Date(ctime));
//設(shè)置作業(yè)執(zhí)行間隔
simpleTrigger.setRepeatInterval(10000);
//設(shè)置作業(yè)執(zhí)行次數(shù)
simpleTrigger.setRepeatCount(10);
//設(shè)置作業(yè)執(zhí)行優(yōu)先級(jí)默認(rèn)為5
//simpleTrigger.setPriority(10);
//作業(yè)和觸發(fā)器設(shè)置到調(diào)度器中
scheduler.scheduleJob(jobDetail, simpleTrigger);
//啟動(dòng)調(diào)度器
scheduler.start();
}
一個(gè)簡(jiǎn)單的quartz任務(wù)就完成了
posted on 2008-07-20 01:17 百科 閱讀(390) 評(píng)論(0) 編輯 收藏