Job类:
public class MyJob implements Job { public void execute(JobExecutionContext context)throws JobExecutionException { System.out.println(context.getJobDetail().getJobDataMap().get("username")); System.out.println(context.getPreviousFireTime() + ", " + context.getFireTime() + ", " + context.getNextFireTime()); } }
main类:
Scheduler scheduler = null; try{ //new Scheduler DirectSchedulerFactory factory = DirectSchedulerFactory.getInstance(); factory.createVolatileScheduler(5); scheduler = factory.getScheduler(); scheduler.start(); //new JobDetail JobDetail jobDetail = JobBuilder .newJob(MyJob.class) .withIdentity("myJobName", Scheduler.DEFAULT_GROUP) .build(); //DataMap JobDataMap jobDataMap = jobDetail.getJobDataMap(); jobDataMap.put("username", "cjmin"); //new CronTrigger CronTrigger trigger = TriggerBuilder .newTrigger() .withIdentity("cronTriggerName", Scheduler.DEFAULT_GROUP) .withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?")) .build(); scheduler.scheduleJob(jobDetail, trigger); //手工触发job //jobDataMap.put("username2", "cjmin2"); //scheduler.triggerJob(JobKey.jobKey("myJobName", Scheduler.DEFAULT_GROUP), jobDataMap); //验证cron是否有效 System.out.println(CronExpression.isValidExpression("0 *")); }catch(Exception ex){ ex.printStackTrace(); if(scheduler != null){ try { scheduler.shutdown(); } catch (SchedulerException e) { e.printStackTrace(); } } }