package test;
import java.util.Date;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.TriggerKey;
import org.quartz.impl.StdSchedulerFactory;
public class TestJob {
private static Scheduler scheduler = null;
public static void main(String[] args) throws Exception {
new TestJob().quartzTest();
// new TestJob().cronSchedule();
}
public TestJob() throws SchedulerException {
scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
}
public void quartzTest() throws Exception {
try {
JobDetail jobDetail = JobBuilder.newJob(B.class).withIdentity("job1", "group1").build();
// 创建任务器:定义任务细节
SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule();
scheduleBuilder.withIntervalInMilliseconds(1500).repeatForever();
// 定义触发器
TriggerBuilder<Trigger> triggerBuilder = TriggerBuilder.newTrigger();
triggerBuilder.withIdentity("trigger1", "group1");
triggerBuilder.withSchedule(scheduleBuilder);
Trigger trigger = triggerBuilder.startNow().build();
scheduler.scheduleJob(jobDetail, trigger);
} catch (SchedulerException e) {
}
}
public void cronSchedule() {
try {
JobDetail jobDetail = JobBuilder.newJob(B.class).withIdentity("job2", "group2").build();
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0 * 11 * * ?")
.withMisfireHandlingInstructionDoNothing();
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "simpleTriggerGroup")
.startAt(new Date()).withSchedule(scheduleBuilder).build();
scheduler.scheduleJob(jobDetail, trigger);
} catch (SchedulerException e) {
}
}
public static class B implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// 通过上下文获取
JobKey jobKey = context.getJobDetail().getKey();
TriggerKey triggerKey = context.getTrigger().getKey();
System.out.println("jobKey:" + jobKey);
System.out.println("triggerKey:" + triggerKey);
try {
context.getScheduler().shutdown(false); // 停止作业
} catch (SchedulerException e) {
}
}
}
}
CronScheduleBuilder.cronSchedule("");
参考: