spring 集成 tcp 服务器关闭

spring integration tcp server shutdown

我已经使用 spring 集成编写了 tcp 服务器。感谢优秀的样品https://github.com/spring-projects/spring-integration-samples/tree/master/basic/tcp-client-server 如果用户在控制台上按下 q,示例服务器将停止。

TCP 服务器是一个独立的应用程序,可以完美地接受请求和发送响应。我想添加服务器的有序关闭,因为如果服务器作为后台进程启动,则无法访问控制台。

有没有办法让服务器等待事件?如果关闭事件来了,那么我可以调用 applicationContext.stop()。

如果您能就有序关机过程提出任何想法,我将不胜感激。

谢谢

我不确定你说的是哪种 "event" 但你可以做很多事情。

如果启用 JMX,IntegrationMBeanExporter 提供 orderly shutdown

对于 TCP,这会阻止它接受新连接,丢弃任何新请求并让您有时间等待任何进程中的请求终止。

您可以使用 control-bus 向入站端点发送停止请求。

控制总线消息的来源可以是任何你想要的 - 另一个 TCP 适配器...

telnet 123.123.123.123
bar.stop()

或使用任何其他消息传递技术。

或者您可以只使用 OS 终止 JVM。