Quartz,啟動不立即執行問題


我的Quartz 是2.2版本,

在java程序中寫了兩個加入計划方法

////  添加簡單計划任務 author:iresearch.com.cn -- jackical
 	public static void AddSimplejob(String jobName,String strTrigger,int id,int hour,int minute,Date DateStart) throws SchedulerException{
		
		Scheduler sched=sf.getScheduler();
		
		Calendar calendar=GregorianCalendar.getInstance();
		calendar.setTime(DateStart);
		int intYear= calendar.get(Calendar.YEAR);
		int intMonth=calendar.get(Calendar.MONTH)+1;
		int intDay=calendar.get(Calendar.DAY_OF_MONTH);
		
		Date runDate=DateBuilder.dateOf(hour, minute, 0,intDay,intMonth,intYear);   //////  設置執行的時間
		
		JobDetail jobDetail=JobBuilder.newJob(DoJob.class)
				.withIdentity(jobName,JOB_GROUP_NAME)
				.usingJobData("id",id)
				.build();
		
		SimpleTrigger trigger=(SimpleTrigger)TriggerBuilder
				.newTrigger()
				.withIdentity(strTrigger,TRIGGER_GROUP_NAME)
				.startAt(runDate)
				.withSchedule(SimpleScheduleBuilder.simpleSchedule() 
						.withIntervalInMinutes(3)
						.withRepeatCount(0)
						)
				.build();
		
		/*
		 * 				.withSchedule(SimpleScheduleBuilder.simpleSchedule()
						.withIntervalInSeconds(10)
						.withRepeatCount(0)
						)
		 * */
		
		sched.scheduleJob(jobDetail,trigger);
		sched.start();
	}
	
	/////  添加定時任務 author:iresearch.com.cn -- jackical 
 	public static void AddCronJob(String jobName,String strTrigger,int id,String strExp,Date DateStart,Date DateEnd) throws SchedulerException, ParseException{
		
		Scheduler sched=sf.getScheduler();
		
		JobDetail jobDetail=JobBuilder.newJob(DoJob.class)
				.withIdentity(jobName,JOB_GROUP_NAME)
				.usingJobData("id",id)
				.build();
		
		Trigger trigger=(CronTrigger)TriggerBuilder
				.newTrigger()
				.withIdentity(strTrigger,TRIGGER_GROUP_NAME)
				.startAt(DateStart)
				.endAt(DateEnd)
				.withSchedule(CronScheduleBuilder.cronSchedule(strExp)
						.withMisfireHandlingInstructionDoNothing()
						)
				.build();
		
		
		sched.scheduleJob(jobDetail,trigger);
		sched.start();
		
	}

  

發現這個使用simpleTrigger 的沒有參數設置第一次啟動時不執行 ....只有CromTrigger 有個參數可以設置第一次添加不執行計划 “withMisfireHandlingInstructionDoNothing()”

轉載請注時出處:http://www.cnblogs.com/jackicalSong/

所以我的第一個方法就廢了,但第二個方法一樣可以用.....

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM