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)