2014-04-04 32 views

Odpowiedz

8

Quartz Documentation

@DisallowConcurrentExecution jest adnotacja, które mogą być dodawane do klasy Job, który mówi Quartz nie wykonać wiele wystąpień podanej definicji zadania (które odnosi się do danej klasy pracy) jednocześnie . Zwróć uwagę na to sformułowanie, ponieważ zostało wybrane bardzo ostrożnie. W przykładzie z poprzedniej sekcji, jeśli "SalesReportJob" ma tę adnotację, to tylko jedna instancja z "SalesReportForJoe" może zostać uruchomiona w określonym czasie, ale może jednocześnie wykonać z instancją "SalesReportForMike". Ograniczenie opiera się na definicji instancji (JobDetail), a nie na instancjach klasy . Jednak zdecydowano (podczas projektowania kwarcu) , aby adnotacja była przenoszona na samą klasę, ponieważ robi ona często ma wpływ na sposób kodowania klasy.

Jeśli nie chcesz SalesReportForMike i SalesReportForJoe biec równolegle, wtedy można ustawić program planujący za wielkość puli wątków do 1. Tak więc w danym momencie tylko jedno zadanie będzie uruchamiane.

wziąć również do obejrzenia StatefulJob

+0

StatefulJob jest idealny, dziękuję. – victorio

1

Zapoznaj się z adnotacją DisallowConcurrentExecution, która uniemożliwi jednoczesne uruchomienie wielu instancji tego samego zadania.

+0

które powinny być dobre, ale używam 1.8, i nie mogę go zaktualizować. – victorio