// 创建调度器,用于调度任务,调度器内部拥有一个任务计划表,调度器在这个表里面对各个job任务进行时间分配
SchedulerFactory sfact = new StdSchedulerFactory();
Scheduler schedule = sfact.getScheduler();
// 创建TestJob,用于定义调度程序具体执行的工作内容
public class TestJob implements Job{
public void execute(JobExecutionContext arg0) throws JobExecutionException {
Date date=new Date();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.print("now:"+sf.format(date));
}
}
// 创建JobDetail的实例,对job进行进一步封装,增加一些原信息,比如name和group;还可以传一些kv参数给job
JobDetail jobDetail1 = JobBuilder.newJob((Class<? extends Job>) TestJob.class) //定义Job类为TestJob类
.withIdentity("myjob1", "group1") //定义name、group
.build();
// 创建触发器,触发器是一个时间规则
CronTrigger trigger1 =(CronTrigger) TriggerBuilder.newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 10 ? * MON")) //每周一造成10点执行
.build();
// 给调度器的计划表增加一条计划,让jobDetail1在trigger1时间点运行任务
schedule.scheduleJob(jobDetail1, trigger1);
// 启动调度器开始执行任务
schedule.start();