1. 程式人生 > >spring quartz 根據開始時間 結束時間 動態設定任務

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