2013-10-02 15 views
6

Açıkta olmadığım bir şey. Gün boyunca rastgele planlanmış işlerim olduğunu ve her işin 30 dakika sürdüğünü söyle. Bu işlerden beş tanesinin çalıştığını ve Tomcat'ın öldüğünü söyleyin. Tomcat'i uygulamamla başlattığımda veya yeniden başlatıldıkları için şu anda çalışan işleri kaybettiğimde işler yeniden başlatılıyor mu?Tomcat öldürüldüğünde kıl akımı yürütme işi

cevap

11

Kısa cevap, varsayılan olarak, şu anda çalışan İşler Bir İşi (JobDetail) oluştururken bunu kurtarmak için Quartz anlatmak için requestRecovery özelliği ayarlayabilirsiniz ateş olarak kabul edilir ve

..

kurtarıldı değil ama çalışan aka "hard shutdown" kilitlenme durumunda çalışır. Bir iş "kurtarma istekleri" eğer ve bir 'sert kapatma' döneminde yürütülüyor -

RequestsRecovery:

sayfanın altındaki resmi belgeler here aktaran zamanlayıcı (yani işlem, çöküyorsa veya makine kapatılıyorsa), daha sonra programlayıcı yeniden başlatıldığında yeniden çalıştırılır. Bu durumda, JobExecutionContext.isRecovering() yöntemi doğru döner.

Yani Exemple için yapabileceği:

import static org.quartz.JobBuilder.*; 

... 

JobDetail job = newJob(MyJob.class) 
      .withIdentity("myJob", "group1") 
      .requestRecovery(true) //This is the guy! 
      .build(); 

... 
0

Tomcat işinizi umursamıyor. Kapatıldığında web sunucunuzdaki işi doğru şekilde sonlandırmak sizin görevinizdir.

+0

ne ben sonra ben is Kuvars şu anda yürütülen edildi veya Kuvars onları atmak yok işleri yeniden deneme gelmez, kuvars anlam temiz bir jvm kazasından kurtaramazsınız Bir kullanıcının "işi doğru bir şekilde sonlandırmak" anlamına gelmediği durumlarda – user671731