编程方式的quartz2例子

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();
		}
	}
}

猜你喜欢

转载自chenjumin.iteye.com/blog/2336740
今日推荐