要讓Quartz插件定時執(zhí)行任務(wù),首先需要創(chuàng)建一個Job類,繼承自Quartz的Job接口,并實(shí)現(xiàn)execute方法。然后創(chuàng)建一個Trigger對象,指定任務(wù)的執(zhí)行時間和頻率。最后將Job和Trigger通過Scheduler對象進(jìn)行關(guān)聯(lián),即可實(shí)現(xiàn)定時執(zhí)行任務(wù)。
以下是一個簡單的示例代碼,演示如何使用Quartz插件定時執(zhí)行任務(wù):
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("定時任務(wù)執(zhí)行:" + System.currentTimeMillis());
}
public static void main(String[] args) {
try {
// 創(chuàng)建Scheduler實(shí)例
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// 創(chuàng)建JobDetail對象,指定Job類
JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
.withIdentity("myJob")
.build();
// 創(chuàng)建Trigger對象,指定執(zhí)行時間和頻率
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(10)
.repeatForever())
.build();
// 將Job和Trigger關(guān)聯(lián)到Scheduler
scheduler.scheduleJob(jobDetail, trigger);
// 啟動Scheduler
scheduler.start();
// 等待任務(wù)執(zhí)行
Thread.sleep(60000);
// 關(guān)閉Scheduler
scheduler.shutdown();
} catch (SchedulerException | InterruptedException e) {
e.printStackTrace();
}
}
}
以上代碼創(chuàng)建了一個簡單的定時任務(wù),每隔10秒輸出當(dāng)前時間戳。通過Scheduler對象控制任務(wù)的啟動和關(guān)閉。您可以根據(jù)自己的需求,修改執(zhí)行時間和任務(wù)內(nèi)容。