2014-07-14 51 views
0

我在停止jboss時遇到問題。大多數時候我執行關機。它會在幾秒鐘內停止服務器。JBoss關機永久使用

但有時需要forver停下來,我必須殺死這個過程。

Whenerver關機需要較長我看到調度正在運行,並在日誌中我看到

2014-07-14 19:19:29,124 INFO [org.springframework.scheduling.quartz.SchedulerFactoryBean] (JBoss Shutdown Hook) Shutting down Quartz Scheduler 
2014-07-14 19:19:29,124 INFO [org.quartz.core.QuartzScheduler] (JBoss Shutdown Hook) Scheduler scheduler_$_s608203at1vl07shutting down. 
2014-07-14 19:19:29,124 INFO [org.quartz.core.QuartzScheduler] (JBoss Shutdown Hook) Scheduler scheduler_$_s608203at1vl07 paused. 

並沒有什麼。

回答

1

確保Quartz調度程序線程和線程池中的所有線程都標記爲守護程序線程,以防止JVM退出。

org.quartz.scheduler.makeSchedulerThreadDaemon=true 

org.quartz.threadPool.makeThreadsDaemons=true 

雖然它是安全的,以紀念調度線程作爲守護線程,你應該怎麼標記您的線程池中的線程作爲守護線程之前認爲:

這可以通過分別設置以下的石英特性來實現,因爲當JVM退出時,這些「worker」線程可能正在執行一些你不想突然中止的邏輯。如果是這種情況,您可以讓自己的作業實現org.quartz.InterruptableJob接口,並在應用程序某處實施一個JVM關閉掛鉤,以中斷所有當前正在執行的作業(其列表可從org.quartz.Scheduler API獲取)。