简单实例
该实例用来在下一分钟执行一个helloJob
public class HelloJobMain {
public static void main(String[] args) throws Exception {
// DirectSchedulerFactory directSchedulerFactory = DirectSchedulerFactory.getInstance();
//创建一个调度工厂对象,并从里面获取一个调度器
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
//获取当前时间的下一分钟
Date runTime = DateBuilder.evenMinuteDate(new Date());
//定义一个job jobkey名称 jobkey 组
JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity("job1", "group1").build();
JobDataMap jobDataMap = job.getJobDataMap();
//JobDataMap jobDataMap=new JobDataMap();
jobDataMap.put("zhangsan",23);
//定义一个定时器
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1").startAt(runTime).build();
scheduler.getContext().put("lisi",24);
scheduler.scheduleJob(job, trigger);
scheduler.start();
Thread.sleep(65L * 1000L);
scheduler.shutdown(true);
}
}
public class HelloJob implements Job {
/**
* @param jobExecutionContext
* @throws JobExecutionException
*/
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("HelloJob 任务执行啦");
JobDetail jobDetail = jobExecutionContext.getJobDetail();
JobKey key = jobDetail.getKey();
Trigger trigger = jobExecutionContext.getTrigger();
TriggerKey key1 = trigger.getKey();
JobDataMap mergedJobDataMap = jobExecutionContext.getMergedJobDataMap();
System.out.println(mergedJobDataMap.get("zhangsan"));
SchedulerContext context = null;
try {
context = jobExecutionContext.getScheduler().getContext();
} catch (SchedulerException e) {
e.printStackTrace();
}
System.out.println(context.get("lisi"));
}
}
上面代码是创建一个Job的基本步骤,即包括:
1、创建SchedulerFactory工厂对象,并从中获取一个Scheduler
2、创建一个JobDetail
3、创建一个触发器即Trigger
4、注册到Scheduler,即scheduler.scheduleJob(job, trigger);
5、启动Scheduler,即scheduler.start();