2013-04-03 3 views
5

Come si elimina un trigger per un lavoro in Quartz.net e si mantiene il lavoro? Questo è solo un problema quando si elimina l'ultimo trigger sul lavoro, in questo momento viene eliminato anche il lavoro.Elimina trigger per lavoro in Quartz.net

Il codice che sto usando è:

_scheduler.UnscheduleJob(trigger.Key); 

e che funziona bene fino a quando il lavoro per quel trigger ha più di un trigger. Se questo è l'ultimo trigger, anche il lavoro viene cancellato, e questo è qualcosa che non voglio.

risposta

8

Quando si crea il tuo lavoro è necessario specificare che si vuole attaccare intorno dopo tutti i trigger sono stati cancellati, che si fa chiamando StoreDurably()

esempio

IJobDetail job = JobBuilder.Create<HelloJob>() 
     .WithIdentity("job1", "group1") 
     .StoreDurably() 
     .Build(); 
+0

Perfetto! Grazie! –

0

È inoltre possibile utilizzare

// Unschedule a particular trigger from the job (a job may have more than one trigger) 
scheduler.UnscheduleJob(new TriggerKey("trigger1", "group1")); 

Nota che la mia sintassi è leggermente diversa rispetto al Quartz.net reference

+1

Penso che potrebbe avere lo stesso problema che ho descritto nel mio test, cioè, cancella anche il lavoro se è l'ultimo trigger. –

+0

Questo è corretto, cancella il lavoro se era l'ultimo trigger. Scusa, non ho preparato la tua domanda per intero. –