spring quartz 根據開始時間 結束時間 動態設定任務
阿新 • • 發佈:2019-01-01
// 設定任務內容 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);