|
对于最新稳定版本,请使用 Spring Integration 7.0.0! |
有序停摆
如《MBean Exporter》中所述,MBean 导出器提供一个名为stopActiveComponents,用于有序地停止应用。
该作仅有长参数。
该参数表示作等待多长时间(以毫秒为单位),以让飞行中消息完成。
作方式如下:
-
叫
beforeShutdown()所有实现的豆子有序关机能力.这样做可以让这些组件为关闭做准备。 实现该接口及其调用功能的组件示例包括:JMS和AMQP消息驱动适配器(停止监听器容器)、TCP服务器连接工厂停止接受新连接(但保持现有连接开放)、TCP入站端点(日志)接收到的新消息,以及HTTP入站端点
503 - 服务不可用欢迎任何新请求。 -
停止所有活跃信道,如JMS或AMQP支持的信道。
-
停下
消息源实例。 -
所有进站停止
消息制作人(不有序关机能力). -
等待剩余时间,由
长参数传递到作中。这样,任何机上留言都能完成它们的航程。 因此,在调用该作时选择合适的超时非常重要。
-
叫
afterShutdown()在所有有序关机能力组件。这样做可以让这些组件执行最终的关机任务(例如关闭所有未开的套接字)。
如《有序关机托管作》中所述,该作可以通过使用 JMX 调用。
如果你想程序化调用该方法,你需要注入或以其他方式获取对IntegrationMBeanExporter.
如果没有身份证属性在<int-jmx:mbean-export/>定义是,豆子有一个生成的名称。
这个名称包含一个需要避免的随机成分对象名称如果同一个 JVM 中存在多个 Spring Integration 上下文,则会发生碰撞(MBeanServer).
因此,如果你希望程序化调用该方法,我们建议你向导出器提供身份证属性,这样你就能在应用上下文中轻松访问它。
最后,可以通过使用<控制总线>元素。
详情请参见监控 Spring 集成示例应用。
之前描述的算法在4.1版本中得到了改进。
此前,所有任务执行器和调度器都被停止了。
这可能导致队列通道留下的实例。
现在,停摆让民调人员继续运转,以便这些信息被抽取和处理。 |