Chcę dynamicznie dodać wyzwalaczy do pracy, ale nie może znaleźć żadnych pomocnych metod off SchedulerDodaj wiele wyzwalaczy do pojedynczego zadania kwarcowym
I choć chciałbym po prostu móc wywołać metodę scheduleJob powtarzalnie, ale to daje mi wyjątek ObjectAlreadyExists ", ponieważ już istnieje z tą identyfikacją".
Jak mogę to zrobić?
EDIT
private boolean scheduleLoadJob(XfuScheduleTimeInfo time)
{
LoadScheduleJob job = new LoadScheduleJob(time);
JobDetail detail;
Integer id = Integer.valueOf(time.getScheduleId());
if(_hashMap.containsKey(id))
{
detail = _hashMap.get(Integer.valueOf(time.getScheduleId()));
}
else
{
detail = job.getDetail();
_hashMap.put(id, detail);
}
try
{
Trigger newTrigger = job.getTrigger();
_log.debug("------" + newTrigger.getKey());
_quartzScheduler.scheduleJob(detail, newTrigger);
return true;
}
catch(ParseException e)
{
_log.error("Unable to parse cron expression for " + job.getInfo());
return false;
}
catch(SchedulerException e)
{
_log.error("Job scheduling failed for " + job.getInfo());
return false;
}
}
z wyjściem konsoli
------ LoadJobs.Trigger-44
nabycia partia 1 powoduje
Wytwarzanie wystąpienie Zadanie "LoadJobs.Job-42", class = com.scheduling.LoadScheduleJob
Wywołanie wykonać na pracy LoadJobs.Job-42
nabycie partia 1 wyzwala
Job wezwał: 42: 44
------ LoadJobs.Trigger-45
Harmonogram zadań nie powiódł się dla 42: 45 - 1/5 * *? * *
Cześć Jake. Mam listę wyrażeń crona, takich jak lista def = ["0 0/10 * * *?", "0 0/20 * * *?", "0 0/30 * * *?"] I Chcę utworzyć wyzwalacze w pętli jak String triggerName; \t int j = 0; \t dla (cronExpr na liście) \t { \t j ++; \t \t \t triggerName = "wyzwalania" + Integer.toString (j) \t \t \t triggerName = new CronTrigger(); \t \t \t triggerName.setName (triggerName); \t \t \t triggerName.setGroup (job.getGroup()); \t \t \t triggerName.setJobName (job.getName()); \t \t \t triggerName.setCronExpression (cronExpr); } i wywołaj metodę execute() w kwarcu dla różnych czasów o różnych parametrach. Jak mam to podejść? – elyon