暂停和恢复 MQTT 入站适配器
Pausing and resuming MQTT Inbound Adapter
我们有: 一个转换器,它从 mqtt 主题获取消息,解析、处理这些消息,并在特定验证后将它们发送到其他消息系统。如果无法访问目标系统,我们将创建一个特定事件并通过 org.springframework.context.ApplicationEventPublisher 的注入实例发送该事件。
我们希望: 在目标消息传递系统不可用的情况下,能够暂停(然后稍后恢复)我们入站 MQTT 适配器的使用。
我们确实有一组对这些适配器的引用,并且想编写实现 ApplicationListener 的 "Toggler" 并根据事件暂停或恢复消耗。
作为 MessageProducerSupport 的任何实例,MqttPahoMessageDrivenChannelAdapter 具有受保护的 doStart() 和 doStop() 方法。是否应该尝试将它们用于 pausing/resuming 目的?
MessageProducerSupport
扩展了一个 AbstractEndpoint
,它实现了 SmartLifecycle
与 public start()
和 stop()
。您可以简单地调用它们来停止从 MQTT 轮询消息并在需要时重新启动。
我们有: 一个转换器,它从 mqtt 主题获取消息,解析、处理这些消息,并在特定验证后将它们发送到其他消息系统。如果无法访问目标系统,我们将创建一个特定事件并通过 org.springframework.context.ApplicationEventPublisher 的注入实例发送该事件。
我们希望: 在目标消息传递系统不可用的情况下,能够暂停(然后稍后恢复)我们入站 MQTT 适配器的使用。
我们确实有一组对这些适配器的引用,并且想编写实现 ApplicationListener 的 "Toggler" 并根据事件暂停或恢复消耗。
作为 MessageProducerSupport 的任何实例,MqttPahoMessageDrivenChannelAdapter 具有受保护的 doStart() 和 doStop() 方法。是否应该尝试将它们用于 pausing/resuming 目的?
MessageProducerSupport
扩展了一个 AbstractEndpoint
,它实现了 SmartLifecycle
与 public start()
和 stop()
。您可以简单地调用它们来停止从 MQTT 轮询消息并在需要时重新启动。