任务调度 Quartz 学习(二) CronTrigger
在Quartz中Trigger有 SimpleTrigger与CronTrigger两种:
SimpleTrigger:当需要的是一次性的调度(仅是安排单独的任务在指定的时间及时执行),或者你需要在指定的时间激活某个任务并执行N次,设置每次任务执行的间隔时间T。那此时使用SimpleTrigger将是非常方便的。
CronTrigger: 如果需要安排的任务时基于日期的-比如"每个星期五正午"或者"每个月10号的10:15",使用CronTrigger将是非常有用的。
在上一篇的例子中使用的是SimpleTrigger,这次写个CronTrigger的例子。
Example:
public class MyJob implements Job{ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("测试quartz"+new Date()); } //CronTrigger //其他定义与SimpleTrigger没有区别,只是在定义Trigger的时候有所改变 public static void cronTrigger() throws SchedulerException { SchedulerFactory sf=new StdSchedulerFactory(); Scheduler sche=sf.getScheduler(); JobDetail jobDetail=JobBuilder.newJob(MyJob.class).withIdentity("job2","group2").build(); CronTrigger cron=TriggerBuilder.newTrigger().withIdentity("trigger2","group2") .startNow() .withSchedule(CronScheduleBuilder.cronSchedule("0/20 * * * * ?")).build(); //每隔20秒运行一次 //("15 0/2 * * * ?")偶数分钟的第15秒执行一次 //("0 0/2 8-17 * * ?")8时到17时的每个偶数分钟执行一次 //("0 0/3 17-23 * * ?")17-23时,每3分钟执行一次 sche.scheduleJob(jobDetail,cron); sche.start(); } public static void main(String[] args) throws SchedulerException { cronTrigger(); } }