wtorek, 27 listopada 2007

Quartz c.d.

W poprzednim poście XML definiował mamy 4 powiązane ze sobą obiekty.
Zaczniemy od końca :)

1. Scheduler:
Jak można się domyślać, do zarządzania wszystkimi zdarzeniami potrzebujemy jednego z nich. Jest to obiekt 'scheduler' klasy org.springframework.scheduling.quartz.SchedulerFactoryBean. Tak więc dzięki temu, że w bibliotece Spring 2.0 mamy wsparcie dla Quartz możemy go tutaj wykorzystać.
Ponieważ chcemy, żeby zarządzanie zdarzeniami było włączone automatycznie po starcie aplikacji i czekało na zakończenie zadań przed zamknięciem, to ustawiamy atrybuty autoStartup i waitForJobsToCompleteOnShutdown na true.
Właciwosć 'triggers' tego obiektu służy do zdefiniowania samych zdarzeń.
U nas lista ta zawiera odwołanie tylko do jednego obiektu, dummyCronTrigger który jest zdefiniowany wyżej.

2. dummyCronTrigger - wyzwalacz zdarzenia.
Ponieważ chciałem, żeby zdarzenie było wywoływane co 10 sekund, musiałem użyć triggera bazującego na wyrażeniu polecenia Linuxowego cron.
W tym przypadku wygląda ono tak: 0/10 * * * * ?
Właściwość jobDetail ustawiamy na dummyJobDetail, czyli obiekt, który definiuje ma konkretne zadanie.

3. dummyJobDetails - służy tylko do wskazania metody obiektu, który wykona nasze zadanie.

4. outdatetProjectsMailSender to właściwy obiekt wykonujący nasze zadanie.
Przy implementacji zadania należy zwrócić uwagę, że ta metoda nie powinna rzucać wyjątków innych niż JobExecutionException.

Na koniec link do tutoriala, który przydał mi się do zrozumienia tego tematu:
http://www.lucianofiandesio.com/javatales/qtzfuse.html

Brak komentarzy: