Springboot卡住了关闭metricsExecutor bean,输入ExecutorService

时间:2015-12-09 20:03:39

标签: java spring spring-boot spring-boot-actuator

我在Java 8上使用Springboot margins(),尝试使用1.2.6-RELEASE端点关闭,但关闭序列在此处被卡住(上次日志条目):

/shutdown

2015-12-09 13:27:56,607 INFO ThreadPoolTaskExecutor - Shutting down ExecutorService 'metricsExecutor' 似乎是一个springboot管理对象,所以我希望在没有参与的情况下隐式处理它的关闭。

metricsExecutor

我是否需要使用关闭挂钩显式关闭此组件?

更新

更多背景信息,我使用Apache Camel和ActiveMQ。要关闭正在运行的进程,我首先从JMX停止我的Camel路由;那部分有效。最后一步使用Springboot的"bean": "metricsExecutor", "scope": "singleton", "type": "org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor", "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/MetricRepositoryAutoConfiguration$MetricsChannelConfiguration.class]", "dependencies": [] 来阻止JVM,以及它被卡住的地方,但我可以根据我的观察重现错误:

如果我使用" pooled"配置ActiveMQ连接,Springboot挂起并且不关闭:

http://../shutdown

spring.activemq.broker-url=tcp://mqserver:61101 spring.activemq.user=admin spring.activemq.password=password spring.activemq.pooled=true 设置为pooling,现在JVM干净利落地关闭:

false

完整线程转储

spring.activemq.pooled=false

1 个答案:

答案 0 :(得分:1)

这看起来像Spring Boot中的一个错误。我打开了Enumerable.Aggregate

与此同时,您可以通过为连接工厂声明自己的bean并对其进行注释来解决问题,以便在应用程序上下文关闭时停止池:

var reader = new StringReader(Minecraft_Texturepack_Reload.Properties.Resources.Englisch);
Language_Strings.main_form_Text = reader.ReadLine()
Language_Strings.project_menu_item_Text = reader.ReadLine();