【SimpleTrigger的构造方法】
SimpleTrigger(String name,String group); //指定Trigger的所属组 和 名称
SimpleTrigger(String name, String group, Date startTime); //指定Trigger的所属组 和、名称、触发时间
SimpleTrigger(String name, String group, Date startTime, Date endTime, int repeatCount, long repeatInterval); //指定Trigger的所属组 和、名称、触发时间、结束时间、重复次数、时间间隔
SimpleTrigger(String name, String group, String jobName, String jobGroup, Date startTime, Date endTime, int repeatCount, long repeatInterval); //jobGroup和JobName使该Trigger和Scheduler中的某个任务关联起来
【工程截图】
【SimpleJob.java】
package com.higgin.simple; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class SimpleJob implements Job{ public SimpleJob() { System.out.println("---SimpleJob构造方法---"); //测试每次调用是否会重新创建一个新的SimpleJob类 } @Override public void execute(JobExecutionContext jobCtx) throws JobExecutionException { System.out.println(jobCtx.getTrigger().getName()+"----任务开始执行了----"+(new Date())); } }
【SimpleTriggerRunner.java】
package com.higgin.simple; import java.util.Date; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.SimpleTrigger; import org.quartz.impl.StdSchedulerFactory; public class SimpleTriggerRunner { public static void main(String[] args) { try{ //创建一个JobDetail,封装SimpleJob,同时指定SimpleJob在Scheduler中的所属组合名称,组名:jGroup1,名称:job1_1 JobDetail jobDetail = new JobDetail("job1_1","jGroup1",SimpleJob.class); //创建一个SimpleTrigger实例,指定该SimpleTrigger在Scheduler中的所属组及名称,组名:tGroup1,名称:trigger1_1 SimpleTrigger simpleTrigger = new SimpleTrigger("trigger1_1","tGroup1"); simpleTrigger.setStartTime(new Date()); simpleTrigger.setRepeatCount(5); //重复执行6次 simpleTrigger.setRepeatInterval(2000); //每次执行之间间隔2秒 SchedulerFactory schedulerFactory = new StdSchedulerFactory();//通过StdSchedulerFactory获取一个scheduler实例(注意是StdSchedulerFactory!) Scheduler scheduler = schedulerFactory.getScheduler(); scheduler.scheduleJob(jobDetail, simpleTrigger); //1.将JobDetail和Trigger注册到scheduler中 2.用Trigger对JobDetail中的任务进行调度 scheduler.start(); //scheduler启动后,Trigger将定期触发并执行SimpleJob中的execute()方法 }catch(SchedulerException e){ e.printStackTrace(); } } }
【运行结果】
可以看出,每次都会实例化新的SimpleJob(构造方法看出),并每隔2s执行一次,设置simpleTrigger.setRepeatCount(5); 但会执行6次。