我的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/
所以我的第一個方法就廢了,但第二個方法一樣可以用.....