2010-11-24 32 views
14

J'utilise Spring pour injecter un planificateur Quartz (extrait de l'interface TaskScheduler de Spring) dans mon application qui charge les tâches configurées à partir d'une base de données au démarrage.Comment annuler un travail planifié dans Quartz

Il ajoute chaque emploi dans quelque chose comme planificateur ceci:

TaskScheduler taskScheduler = ...;//injected  
Runnable runableThing = ...; 
String cronExpression = ...; //from DB 
taskScheduler.schedule(runableThing, new CronTrigger(cronExpression)); 

ma question est la suivante: Est-il possible de spécifier quelque chose comme un job_id qui peut ensuite être utilisé pour annuler le travail/déclencheur - dire en réponse à un utilisateur sélectionnant le travail à annuler dans l'interface Web?

J'ai regardé les documents de Spring et je ne vois pas de moyen de le faire.

Toute idée reçue avec gratitude.

+0

Merci à matt b 'et' Puspendu Banerjee »pour cette réponse. Je n'avais pas remarqué les exemples de livre de cuisine - vraiment utile. –

Répondre

21

Déprogrammer un déclencheur particulier de Job

scheduler.unscheduleJob(triggerName, triggerGroup); 

Suppression d'un emploi et Déprogrammer Tous ses éléments déclencheurs

scheduler.deleteJob(jobName, jobGroup); 

Ref: http://www.opensymphony.com/quartz/wikidocs/UnscheduleJob.html

+0

Il posait des questions sur le 'org.springframework.scheduling.TaskScheduler' du printemps. Vos exemples se réfèrent au planificateur Quartz natif. – mwhs

1
ScheduledFuture<V> job = taskSchedule.schedule(runableThing, new CronTrigger(cronExpression)) 
job.cancel(true);