2013-04-03 16 views
5

Jak usunąć wyzwalacz dla zadania w Quartz.net i zachować pracę? Jest to tylko problem podczas usuwania ostatniego wyzwalacza w zadaniu, teraz usuwa także zadanie.Usuwanie wyzwalacza dla zadania w Quartz.net

Kod używam jest:

_scheduler.UnscheduleJob(trigger.Key); 

i że działa dobrze tak długo, jak zadanie dla skutkującym ma więcej niż jeden język. Jeśli jest to ostatni wyzwalacz, zadanie jest również usuwane, a to jest coś, czego nie chcę.

Odpowiedz

8

Podczas tworzenia zadania musisz określić, że chcesz go trzymać się po wszystkie wyzwalacze zostały usunięte, co zrobić dzwoniąc StoreDurably()

np

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

Idealny! Dziękuję Ci! –

0

Można również używać

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

Zauważ, że moje składnia jest nieco inny niż Quartz.net reference

+1

Myślę, że może mieć ten sam problem, co opisałem w moim teście, to znaczy, że usuwa także zadanie, jeśli jest ostatnim wyzwalaczem. –

+0

Zgadza się. Usuwa zadanie, jeśli był ostatnim wyzwalaczem. Przepraszamy, nie przygotowaliśmy Twojego pytania w całości. –