1、Job
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobKey;
import org.quartz.Trigger;
public class FirstJob implements Job {
Double triggerDouble;//与jobDataMap的key一一对应
public Double getTriggerDouble() {
return triggerDouble;
}
public void setTriggerDouble(Double triggerDouble) {
this.triggerDouble = triggerDouble;
}
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Job Start Time Is: "+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
System.out.println("Hello World!");
System.out.println("打印job上下文信息");
JobKey key = context.getJobDetail().getKey();
System.out.println("key: "+key.getName()+"+"+key.getGroup());
JobDataMap dataMap = context.getMergedJobDataMap();
System.out.println("message: "+dataMap.getString("message"));
System.out.println("triggerDouble:"+ triggerDouble);
Trigger currentTrigger = context.getTrigger();
System.out.println("trigger start Time is: "+currentTrigger.getStartTime());
}
}
2、执行quartz
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.JobBuilder;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.DirectSchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
public class Quartz {
public static void main(String[] args) throws SchedulerException {
// JobDetail
JobDetail jobDetail = JobBuilder.newJob(FirstJob.class).withIdentity("firstJob", "firstJobGroup")
.usingJobData("message", "firstJobMessage").build();
// Trigger
/*Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("firstTrigger", "firstTriggerGroup")
.usingJobData("triggerDouble", 123.321D).startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever()).build();*/
/*SimpleTrigger trigger = TriggerBuilder.newTrigger().withIdentity("firstTrigger", "firstTriggerGroup")
.usingJobData("triggerDouble", 123.321D)
.startAt(new Date())
.endAt(new Date())
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever()).build();*/
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("firstTrigger", "firstTriggerGroup")
.usingJobData("triggerDouble", 123.321D)
.startAt(new Date())
.endAt(new Date())
.withSchedule(CronScheduleBuilder.cronSchedule("")).build();
// schedule
SchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
/*DirectSchedulerFactory factory = DirectSchedulerFactory.getInstance();
Scheduler scheduler = factory.getScheduler();*/
scheduler.start();
System.out.println("Current Time Is: " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
scheduler.scheduleJob(jobDetail, trigger);//近期trigger触发的时间
}
}
3、基础知识如上一篇的quartz浅析