Как отменить запланированную работу в Quartz
Я использую Spring для добавления планировщика Quartz (абстрагированного с помощью Spring интерфейса TaskScheduler) в мое приложение, которое загружает задания, настроенные из базы данных при запуске.
Он добавляет каждое задание в планировщик примерно так:
TaskScheduler taskScheduler = ...;//injected
Runnable runableThing = ...;
String cronExpression = ...; //from DB
taskScheduler.schedule(runableThing, new CronTrigger(cronExpression));
мой вопрос заключается в следующем: возможно ли указать что-то вроде job_id, которое впоследствии может быть использовано для отмены задания/триггера - скажем, в ответ на то, что пользователь выбирает задание, которое нужно отменить в веб-интерфейсе?
Я просмотрел документы Spring и не вижу способа сделать это.
Любые идеи с благодарностью получили.
Ответы
Ответ 1
Внеплановый специфический триггер работы
scheduler.unscheduleJob(triggerName, triggerGroup);
Удаление задания и несанкционированное выполнение всех его триггеров
scheduler.deleteJob(jobName, jobGroup);
Ссылка: http://www.opensymphony.com/quartz/wikidocs/UnscheduleJob.html
Ответ 2
ScheduledFuture<V> job = taskSchedule.schedule(runableThing, new CronTrigger(cronExpression))
job.cancel(true);