我在阻止jboss方面有问题。大多数情况下,当我执行关机时。它会在几秒钟内停止服务器。
但有些时候它需要先行者来停止,而我必须终止这一过程。
当关闭需要很长时间时,我看到调度程序正在运行,在日志中我看到了
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.之后就什么都没有了。
发布于 2014-07-16 20:49:17
确保Quartz调度程序线程及其线程池中的所有线程被标记为守护进程线程,这样它们就不会阻止JVM退出。
这可以通过分别设置以下Quartz属性来实现:
org.quartz.scheduler.makeSchedulerThreadDaemon=true
org.quartz.threadPool.makeThreadsDaemons=true虽然将调度程序线程标记为守护进程线程是安全的,但在将线程池线程标记为守护进程线程之前,您应该考虑一下,因为当JVM退出时,这些“工作者”线程可能处于执行某些逻辑的中间,您不希望突然中止这些逻辑。如果是这样的话,您可以让作业实现org.quartz.InterruptableJob接口,并在应用程序中的某个位置实现JVM挂钩,中断所有当前执行的作业(其列表可以从org.quartz.Scheduler API获得)。
https://stackoverflow.com/questions/24746414
复制相似问题