2012-06-25 10 views
6

Nie jestem zaznajomiony z Java Quartz, właśnie wykorzystaliśmy zadanie testowe zaplanowane codziennie. W naszej aplikacji internetowej Struts2 chcemy uruchomić kilka codziennych zadań zaplanowanych o różnych porach dnia. Zadania powinny być w stanie trwałości tak, aby nawet jeśli zadania nie powiedziały się z powodu awarii serwera/aplikacji, powinny zostać ponownie uruchomione później, gdy serwer jest uruchomiony. Również mogę przechowywać status/wyniki zadań w DB, aby monitorować zadania. Wszelkie sugestie byłyby pomocne.Utrwalanie zadań JavaQuartz

- Dzięki

+0

Wierzę, że kwarc ma wszystkie te funkcje. Z pewnością może korzystać z trwałego sklepu pracy. – Thilo

Odpowiedz

6

Cokolwiek wspomniałem jest to możliwe w Quartz planującego i istnieje już funkcja z wyzwalaczy, które na ogół wymagają Misfire Instructions to co doc powiedzieć o tym

Inną ważną właściwością wyzwalacz jest jego „Instrukcja niewypał ". Występuje przerwa w dopływie, jeśli trwały wyzwalacz "pomija" swój czas wystrzeliwania z powodu wyłączenia programu planującego lub ponieważ nie ma dostępnych wątków w puli wątków kwarcu dla wykonania zadania. Różne typy wyzwalaczy mają do dyspozycji różne instrukcje przerw zapłonu. Domyślnie używają instrukcji "inteligentnej polityki" - która ma dynamiczne zachowanie na podstawie typu wyzwalacza i konfiguracji. Po uruchomieniu programu planującego wyszukuje trwałe wyzwalacze, które nie działają poprawnie, a następnie aktualizuje każdy z nich na podstawie indywidualnie skonfigurowanych instrukcji przerwania pracy. Kiedy zaczniesz używać kwarcu w swoich własnych projektach, powinieneś zapoznać się z instrukcjami dotyczącymi przerw zapłonu, które są zdefiniowane dla danego typu wyzwalacza i wyjaśnione w ich JavaDoc. Bardziej szczegółowe informacje o instrukcjach przerw zapłonu zostaną podane w lekcjach samouczka specyficznych dla każdego typu wyzwalacza.

chodzi o wytrwałość Praca Quartz pochodzi z kilku kompilacji w mechanizmie i wszystko trzeba ustawić JobStore jak JDBCJobStore

Proponuję iść z Quartz scheduler document jego dość łatwe i mają wiele tutorialu i przykłady na początek.

Jeśli nie używasz Spring w swojej aplikacji, nie ma potrzeby dodawania dodatkowego poziomu abstrakcji i zależności.

+0

Po przejściu przez dokumenty, znalazłem jobStore są odpowiedzialne za śledzenie wszystkich "danych roboczych", które dajesz do harmonogramu: zadania, wyzwalacze, kalendarze, itp. Czy możliwe jest również zapisanie stanu Zleceń w jobStore, tj. , status wynik/wykonanie .. –

+0

będziesz mógł uzyskać te informacje również –

+0

Dowolna konkretna lekcja nie. w dokumentacji, w której mogę znaleźć szczegóły dotyczące pobierania stanu zadań zadania harmonogramującego. –

1

Mamy Job stores API w Java kwarcu. Spowoduje to utrwalenie danych w bazach danych dotyczących informacji o zadaniu. Więc myślę, że to ci pomoże. Możesz sprawdzić this link, aby uzyskać pojęcie o kodzie i strukturze DB.

2

Możesz użyć kwarcu w połączeniu z Sprig batch.

Pierwsza z nich zapewnia interfejs API do zarządzania różnymi przepływami (tak złożone, jak jest to konieczne), trwałe przechowywanie stanu zadania i interfejsu API w celu monitorowania i ponownego uruchamiania zadań zgodnie z ich stanem wykonania. Inną poręczną biblioteką jest Spring Batch admin. Ma konsolę internetową i 5 minutowy przewodnik.

Kwarcowy jest używany jako zadanie planisty Stan jest obsługiwany przez wsadę Spring. Może działać jako samodzielna aplikacja java, a także w kontenerze WWW/aplikacji (dla mnie Tomcat był wystarczający).

Powodzenia!

+0

Do korzystania z Spring Batch Admin, czy muszę używać framework Springs w mojej istniejącej aplikacji internetowej Struts2 –

+0

tak, będzie to potrzebne. – aviad

+0

OK, dziękuję za sugestie. –