1
我一直在努力將Quartz代碼從1.8.6改爲2.x.x.正如你可能知道的,在Quartz 2中,API有很多變化。我試圖解決的問題之一是安排工作。此前,該代碼是這樣的:將Quartz代碼遷移到2.2.x
private JobSchedule scheduleExistingJob(JobSchedule schedule) throws SchedulerException
{
JobInfo jobInfo = schedule.getJobInfo();
Trigger trigger = QuartzUtils.createTriggerFromJobSchedule(schedule);
trigger.setJobName(jobInfo.getName());
trigger.setJobGroup(jobInfo.getGroup());
DateTime nextRunDateTime = new DateTime(m_scheduler.scheduleJob(trigger));
JobSchedule newSched = updateScheduleNextRunDateTime(schedule, nextRunDateTime);
return newSched;
}
在這一舊的代碼,有兩種語法錯誤:一個在trigger.setJobName(jobInfo.getName());
,另一個在trigger.setJobGroup(jobInfo.getGroup());
兩者都抱怨The method setJobName(String) is undefined for the type Trigger
。那裏沒有什麼驚喜
我試圖找出如何使石英2.X這個兼容,這是我想出迄今:
private JobSchedule scheduleExistingJob(JobSchedule schedule) throws SchedulerException
{
JobInfo jobInfo = schedule.getJobInfo();
JobDetail job = newJob()
.withIdentity(jobInfo.getName(), jobInfo.getGroup())
.build();
Trigger trigger = QuartzUtils.createTriggerFromJobSchedule(schedule);
Trigger t = newTrigger()
.forJob(job)
.build();
DateTime nextRunDateTime = new DateTime(m_scheduler.scheduleJob(trigger));
JobSchedule newSched = updateScheduleNextRunDateTime(schedule, nextRunDateTime);
return newSched;
}
我無法弄清楚如何合併帶觸發器的作業信息/組。看來在新的API中,我不能指定通用觸發器,它必須是Cron或Simple。我可能會過度思考一切。
任何幫助表示讚賞。
我也堅持相同的問題請幫助 – Krishna