只是为了记录下,为以后需要的时候有个参考。
版本:Quartz 2.x
导入依赖包
import static org.quartz.TriggerBuilder.newTrigger;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.JobBuilder;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
调度的创建:
public static Scheduler scheduler;
//定时调度时间配置。每小时15分的时候执行
String scheCronExpress = "0 0/15 * * * ?";
static {
// 静止检查更新
System.setProperty("org.terracotta.quartz.skipUpdateCheck", "true");
SchedulerFactory sf = new StdSchedulerFactory();
try {
scheduler = sf.getScheduler();
scheduler.start();
} catch (Exception e) {
e.printStackTrace();
}
}
创建用于执行的Job
/**
* 定时调度执行类
* */
public class ScheduleJob implements org.quartz.Job {
public void execute(JobExecutionContext context)
throws JobExecutionException {
Date filreTime = context.getFireTime();
JobDataMap dataMap = context.getMergedJobDataMap();
//TODO 调度时候执行的逻辑代码
}
}
添加调度任务
public void addCronJob(String cronexpress){
String groupName = UUID.randomUUID().toString();
JobDataMap newJobDataMap = new JobDataMap();
newJobDataMap.put("outer", this);
// 创建Job
JobDetail job = JobBuilder.newJob(ScheduleJob.class)
.withIdentity("job-" + groupName, groupName)
.usingJobData(newJobDataMap)
.build();
// 构建触发器
CronTrigger trigger = newTrigger().withIdentity("trigger-" + groupName, groupName)
.withSchedule(CronScheduleBuilder.cronSchedule(cronexpress))
.build();
//任务和触发器关联
scheduler.scheduleJob(job, trigger);
}
转载于:https://blog.51cto.com/dengshuangfu/1423030