对于最新稳定版本,请使用 Spring Integration 7.0.0spring-doc.cadn.net.cn

有序停摆

如《MBean Exporter》中所述,MBean 导出器提供一个名为stopActiveComponents,用于有序地停止应用。 该作仅有参数。 该参数表示作等待多长时间(以毫秒为单位),以让飞行中消息完成。 作方式如下:spring-doc.cadn.net.cn

  1. beforeShutdown()所有实现的豆子有序关机能力.spring-doc.cadn.net.cn

    这样做可以让这些组件为关闭做准备。 实现该接口及其调用功能的组件示例包括:JMS和AMQP消息驱动适配器(停止监听器容器)、TCP服务器连接工厂停止接受新连接(但保持现有连接开放)、TCP入站端点(日志)接收到的新消息,以及HTTP入站端点503 - 服务不可用欢迎任何新请求。spring-doc.cadn.net.cn

  2. 停止所有活跃信道,如JMS或AMQP支持的信道。spring-doc.cadn.net.cn

  3. 停下消息源实例。spring-doc.cadn.net.cn

  4. 所有进站停止消息制作人(不有序关机能力).spring-doc.cadn.net.cn

  5. 等待剩余时间,由参数传递到作中。spring-doc.cadn.net.cn

    这样,任何机上留言都能完成它们的航程。 因此,在调用该作时选择合适的超时非常重要。spring-doc.cadn.net.cn

  6. afterShutdown()在所有有序关机能力组件。spring-doc.cadn.net.cn

    这样做可以让这些组件执行最终的关机任务(例如关闭所有未开的套接字)。spring-doc.cadn.net.cn

如《有序关机托管作》中所述,该作可以通过使用 JMX 调用。 如果你想程序化调用该方法,你需要注入或以其他方式获取对IntegrationMBeanExporter. 如果没有身份证属性在<int-jmx:mbean-export/>定义是,豆子有一个生成的名称。 这个名称包含一个需要避免的随机成分对象名称如果同一个 JVM 中存在多个 Spring Integration 上下文,则会发生碰撞(MBeanServer).spring-doc.cadn.net.cn

因此,如果你希望程序化调用该方法,我们建议你向导出器提供身份证属性,这样你就能在应用上下文中轻松访问它。spring-doc.cadn.net.cn

最后,可以通过使用<控制总线>元素。 详情请参见监控 Spring 集成示例应用spring-doc.cadn.net.cn

之前描述的算法在4.1版本中得到了改进。 此前,所有任务执行器和调度器都被停止了。 这可能导致队列通道留下的实例。 现在,停摆让民调人员继续运转,以便这些信息被抽取和处理。