此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.3.1! |
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.3.1! |
如“MBean 导出器”中所述,MBean 导出器提供了一个名为 的 JMX 操作,该操作用于有序地停止应用程序。
该操作只有一个参数。
该参数指示操作等待多长时间(以毫秒为单位)以允许传输中的消息完成。
操作工作原理如下:stopActiveComponents
Long
-
调用所有实现 的 Bean 。
beforeShutdown()
OrderlyShutdownCapable
这样做可以让这些组件为关机做好准备。 实现此接口及其调用操作的组件示例包括停止侦听器容器的 JMS 和 AMQP 消息驱动适配器、停止接受新连接(同时保持现有连接打开)的 TCP 服务器连接工厂、丢弃(记录)收到的任何新消息的 TCP 入站终结点,以及为任何新请求返回的 HTTP 入站终结点。
503 - Service Unavailable
-
停止任何活动通道,例如 JMS 或 AMQP 支持的通道。
-
停止所有实例。
MessageSource
-
停止所有入站 s(不是 )。
MessageProducer
OrderlyShutdownCapable
-
等待剩余的任何剩余时间,由传入操作的参数值定义。
Long
这样做可以让任何飞行中的消息完成其旅程。 因此,在调用此操作时选择适当的超时非常重要。
-
调用所有组件。
afterShutdown()
OrderlyShutdownCapable
这样做可以让这些组件执行最终的关断任务(例如,关闭所有打开的套接字)。
如有序关闭托管操作中所述,可以使用 JMX 调用此操作。
如果希望以编程方式调用该方法,则需要注入或以其他方式获取对 .
如果定义上未提供任何属性,则 Bean 具有生成的名称。
此名称包含一个随机组件,以避免在同一个 JVM () 中存在多个 Spring Integration 上下文时发生冲突。IntegrationMBeanExporter
id
<int-jmx:mbean-export/>
ObjectName
MBeanServer
因此,如果希望以编程方式调用该方法,建议向导出器提供属性,以便可以在应用程序上下文中轻松访问它。id
最后,可以使用元素调用该操作。
有关详细信息,请参阅监视 Spring Integration 示例应用程序。<control-bus>
前面描述的算法在 4.1 版中得到了改进。
以前,所有任务执行程序和计划程序都已停止。
这可能会导致实例中的中间流消息仍然存在。
现在,关闭使轮询器运行,以使这些消息被排出和处理。QueueChannel |
前面描述的算法在 4.1 版中得到了改进。
以前,所有任务执行程序和计划程序都已停止。
这可能会导致实例中的中间流消息仍然存在。
现在,关闭使轮询器运行,以使这些消息被排出和处理。QueueChannel |