2010-11-24 30 views
14

Estoy usando Spring para inyectar un programador de Quartz (abstraído con la interfaz TaskScheduler de Spring) en mi aplicación que carga tareas configuradas desde una base de datos al inicio.Cómo cancelar un trabajo programado en Quartz

Se añade cada puesto de trabajo en el programador de algo como esto:

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

mi pregunta es la siguiente: ¿Es posible especificar algo así como un job_id que posteriormente puede ser utilizado para cancelar el trabajo/gatillo - dicen en respuesta a un usuario que selecciona el trabajo que se cancelará en la interfaz web?

He mirado los documentos de Spring y no veo la forma de hacerlo.

Todas las ideas fueron recibidas con gratitud.

+0

Gracias a 'Matt B' y ' Puspendu Banerjee 'por esta respuesta. No había notado los ejemplos de libros de cocina, realmente útiles. –

Respuesta

21

Desprogramando un especial de disparo de Job

scheduler.unscheduleJob(triggerName, triggerGroup); 

eliminación de un trabajo y Desclasificación de la totalidad de sus factores desencadenantes

scheduler.deleteJob(jobName, jobGroup); 

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

+0

Preguntaba sobre Spring 'org.springframework.scheduling.TaskScheduler'. Sus ejemplos se refieren al programador de Quartz nativo. – mwhs

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