Spring boot 弹簧靴、Kotlin、Kafka和关机

Spring boot 弹簧靴、Kotlin、Kafka和关机,spring-boot,kotlin,apache-kafka,spring-kafka,Spring Boot,Kotlin,Apache Kafka,Spring Kafka,我有一个Spring boot/Kotlin应用程序,其中嵌入了Kafka侦听器。我会在某个时候通过调用以下命令以编程方式将其关闭: configurableApplicationContext.close() 然而,卡夫卡监听器当时并没有关闭,相反,我得到的是: Failed to shut down 1 bean with phase value 2147483547 within timeout of 30000: [org.springframework.kafka.config.in

我有一个Spring boot/Kotlin应用程序,其中嵌入了Kafka侦听器。我会在某个时候通过调用以下命令以编程方式将其关闭:

configurableApplicationContext.close()
然而,卡夫卡监听器当时并没有关闭,相反,我得到的是:

Failed to shut down 1 bean with phase value 2147483547 within timeout of 30000: [org.springframework.kafka.config.internalKafkaListenerEndpointRegistry]
之后,应用程序按预期关闭


我需要做哪些不同的操作,以便它在被请求时干净地关闭?

为什么要在应用程序代码中关闭消费者?当你的应用程序退出时,Spring应该为你做这件事。你使用的是什么版本?有一次,当没有
@KafkaListener
s来
stop()
时,出现了一个问题。如果不是这样,请显示您的代码和配置以及关机过程的调试日志。@chrsblck该应用程序基本上是一个卡夫卡侦听器。它永远不会自行退出。所以基本上这是一个“我已经处理够了,让我们停止”的事情。@levantpied明白了,这是有道理的。我认为Gary Russell的问题和建议值得考虑。我对
2.3.9.RELEASE
也有同样的问题。如果我显式地注入
KafkaListenerEndpointRegistry
并调用
registry.stop()关机前,它会在10秒后正常关机。