spring quartz 根据开始时间 结束时间 动态设置任务

// 设置任务内容
JobDataMap jobDataMap = new JobDataMap();
// 需要保存spring的bean类 才能反射出 调用方法
jobDataMap.put("targetObject",
springContext.getBean("simpleService"));
// 调用方法
jobDataMap.put("targetMethod", "testMethod2");

jobDataMap.put("shouldRecover", "true");
// 设置任务详细信息
JobDetail newJob = new JobDetail();
// 任务名称
newJob.setName("jobDetail3");
// 任务详细配置
newJob.setJobDataMap(jobDataMap);
// 分组
newJob.setGroup("DEFAUL");
// 实现类(由该类去通过反射调用提供的方法)
newJob.setJobClass(MethodInvokingJobDetailFactoryBean.MethodInvokingJob.class);

Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");
String str = "2013-10-16 00:00:00";
String str2 ="2013-10-18 00:00:00";
Date time = formatDate.parse(str);
Date time2 = formatDate.parse(str2);
//触发器名称 触发器分组 执行次数 间隔时间(毫秒级)
SimpleTrigger simpleTrigger = new SimpleTrigger();
//设置分组名称
simpleTrigger.setGroup(Scheduler.DEFAULT_GROUP);
//触发器名称
simpleTrigger.setName("cronTrigger3");
//SimpleTrigger.REPEAT_INDEFINITELY 不限次数
//simpleTrigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
simpleTrigger.setRepeatCount(10);
//执行时间间隔(毫秒)
simpleTrigger.setRepeatInterval(10);
//设置开始时间
simpleTrigger.setStartTime(time);
//从1开始
simpleTrigger.setTimesTriggered(1);
//设置结束时间
simpleTrigger.setEndTime(time2);
scheduler.scheduleJob(newJob, simpleTrigger);

你可能感兴趣的:(spring)