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