2011-08-02 18 views
8

Ben herhangi bir zamanda sadece bir iş parçacığı çalıştırmak uzun bir işleme işi yürütmek için kuvars yapılandırabilirsiniz merak ediyorum. Başka bir deyişle, ben 5 boyutunda bir SimpleThreadPool ile yapılandırılmış quartz var. Ve ben her 10 saniyede bir yangın var ama bazı durumlarda tamamlamak için 10 saniyeden uzun sürebilir bir iş var. Kuvartz tetikleme/iş/zamanlayıcı yapılandırmak için bir yolu var, bu tetikleyici başka bir iş parçacığı içinde zaten çalışan bir durumda olduğu gibi yeniden ateş etmeyecek. Tetik yeniden patladığında, havuzdan başka bir iplik alır ve aynı işin aynı anda iki örneğini çalışır. Girdiniz için teşekkürler.Kuvartz birden fazla kuvars dişi olduğunda sadece bir iş parçacığına sahip bir iş yürütme

Netleştirme: (1 sayfalık bir threadpool kullanma önerileri için). Gereksinim, iplik parçasını 5 iş parçacığı ile yapılandırmak ve herhangi bir zamanda yalnızca tek bir iş parçacığı içinde yürütmek üzere herhangi bir işe sahip olmaktır, başka bir deyişle, bir işin bir örneği yalnızca bir iş parçacığı tarafından yürütülmelidir.

+0

Havuz boyutunu 1'e düşürmeye ne dersin? – fmucar

cevap

20

Kuvars 1.x kullanıyorsanız yapmak bir seferde tek bir kuvars çalışan iş parçacığı olacak

org.quartz.threadPool.threadCount=1 

ayarlayın. Quartz 2.x kullanıyorsanız, @DisallowConcurrentExecution ek notunu iş sınıfına ekleyin.

1

Meslek sınıfı StatefulJob uygulamak

İlgili konular