Pamiętam, że nie możemy zabić aktualnie działającej Quartz Job, ale możemy przerwać i sprawdzić boolean wszędzie tam, gdzie jest to konieczne, niezależnie od tego, czy będziemy musieli przejść dalej z kolejnymi operacjami, czy nie.Czy można zabić aktualnie działającą pracę kwarcową?
Nawet jeśli implementujemy przerwanie zadania i wywołujemy harmonogram, aby przerwać zadanie, aktualnie uruchomione zadanie będzie nadal działać na serwerze.
Ex:
- Nazwany zapytań SQL został wywołany przez zadanie poprzez Hibernate, który trwa długo
- Połączenie zostało dokonane na serwerze strony trzeciej, gdzie serwer osoba trzecia trwa długo czas odpowiedzi
http://neopatel.blogspot.in/2011/05/quartz-stop-job.html http://forums.terracotta.org/forums/posts/list/3191.page
Czy ktoś może poprawić moje zrozumienie i wytłumaczyć, w jaki sposób możemy zabić lub zatrzymać "obecnie" wykonywanie pracy?
Dzięki, Kathir
Zgadzam się, że nie możemy brutalnie zabić pracy w Quartz ani w JAVA. Zgadzamy się również, że możemy osiągnąć to samo poprzez ExecutorService. Z mojej ciekawości powstaje jeszcze jedno pytanie, dlaczego Quartz nie wdrożył ExecutorService, aby zapewnić nam sposób na zabicie pracy? A może jest plan na przyszłość w ulepszeniach Kwarcu. Dziękuję za wyjaśnienia i daj mi znać swoje przemyślenia. – Kathir
Dlaczego nie implementuje się prawdopodobnie dlatego, że został zaprojektowany, aby zapewnić alternatywę dla tego braku w jvm. Działa ze starymi jvmsami i jeśli implementują ExecutorService, kwarc zostanie powiązany z ostatnim projektem jvm i force, który zmigruje – poussma
Prawdopodobnie mogą dać dodatkowe lub rozległe wsparcie poprzez konfigurację. W ten sposób mogą osiągnąć zgodność w dół, a także nowe ... czy ja czegoś brakuje? .. W każdym razie dziękuję za poświęcony czas i wyjaśnienie ... – Kathir