Java 将Quartz代码迁移到2.2.x
我一直在努力将石英代码从1.8.6改为2.x.x。您可能知道,在Quartz 2中,有很多API更改。我试图解决的问题之一是安排工作。以前,代码是这样的:Java 将Quartz代码迁移到2.2.x,java,quartz-scheduler,Java,Quartz Scheduler,我一直在努力将石英代码从1.8.6改为2.x.x。您可能知道,在Quartz 2中,有很多API更改。我试图解决的问题之一是安排工作。以前,代码是这样的: private JobSchedule scheduleExistingJob(JobSchedule schedule) throws SchedulerException { JobInfo jobInfo = schedule.getJobInfo(); Trigger trigger = QuartzUtils.create
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.setJobNamejobInfo.getName;另一个在trigger.setJobGroupjobInfo.getGroup上
他们都抱怨类型触发器的setJobNameString方法未定义。这并不奇怪
我正试图找出如何使其在Quartz 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或简单触发器。我可能也在想太多了
非常感谢您的帮助。尝试使用下一个迁移手册:我也遇到了同样的问题,请帮助