Quartz是一個(gè)開(kāi)源的Java作業(yè)調(diào)度框架,它可以用于執(zhí)行定時(shí)任務(wù)。在Quartz中,有兩種主要的觸發(fā)器:SimpleTrigger和CronTrigger。SimpleTrigger用于執(zhí)行簡(jiǎn)單的定時(shí)任務(wù),如每隔一段時(shí)間執(zhí)行一次。
SimpleTrigger的設(shè)置方法如下:
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
// 創(chuàng)建一個(gè)TriggerBuilder實(shí)例
TriggerBuilder<Trigger> triggerBuilder = TriggerBuilder.newTrigger();
// 為T(mén)riggerBuilder設(shè)置一個(gè)名稱(chēng)和分組
triggerBuilder.withIdentity("triggerName", "triggerGroup");
// 使用SimpleScheduleBuilder創(chuàng)建一個(gè)簡(jiǎn)單的調(diào)度計(jì)劃
SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule();
// 設(shè)置調(diào)度計(jì)劃的參數(shù),例如每隔5秒執(zhí)行一次
scheduleBuilder.withIntervalInSeconds(5);
// 將調(diào)度計(jì)劃添加到TriggerBuilder中
triggerBuilder.withSchedule(scheduleBuilder);
// 構(gòu)建SimpleTrigger實(shí)例
Trigger simpleTrigger = triggerBuilder.build();
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// 在這里編寫(xiě)你的任務(wù)邏輯
}
}
// 創(chuàng)建一個(gè)JobDetail實(shí)例
JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
.withIdentity("jobName", "jobGroup")
.build();
// 將SimpleTrigger與JobDetail關(guān)聯(lián)
scheduler.scheduleJob(jobDetail, simpleTrigger);
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
// 創(chuàng)建一個(gè)SchedulerFactory實(shí)例
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
// 獲取一個(gè)Scheduler實(shí)例
Scheduler scheduler = schedulerFactory.getScheduler();
// 啟動(dòng)調(diào)度器
scheduler.start();
現(xiàn)在,你已經(jīng)成功地創(chuàng)建了一個(gè)SimpleTrigger,并將其與一個(gè)JobDetail關(guān)聯(lián)。這個(gè)任務(wù)將每隔5秒執(zhí)行一次。你可以根據(jù)需要調(diào)整SimpleScheduleBuilder的參數(shù)來(lái)修改任務(wù)的執(zhí)行頻率。