Приостановка и возобновление входящего адаптера MQTT
У нас есть: конвертер, который принимает сообщения из тем mqtt, анализирует, обрабатывает их и после определенных проверок отправляет их в другую систему обмена сообщениями. Если целевая система недоступна, мы создаем определенное событие и отправляем его через внедренный экземпляр org.springframework.context.ApplicationEventPublisher.
Мы хотели бы: в случаях, когда целевая система обмена сообщениями недоступна, чтобы иметь возможность приостановить (а затем возобновить) потребление наших входящих MQTT-адаптеров.
У нас есть коллекция ссылок на эти адаптеры, и мы хотели бы написать "Toggler", который реализует ApplicationListener и основан на событии, либо приостанавливает, либо возобновляет потребление.
Как и любой экземпляр MessageProducerSupport, MqttPahoMessageDrivenChannelAdapter имеет защищенные методы doStart() и doStop(). Следует ли пытаться использовать их в целях приостановки / возобновления?
1 ответ
MessageProducerSupport
расширяет AbstractEndpoint
который реализует SmartLifecycle
с общественностью start()
а также stop()
, Вы можете просто вызвать их, чтобы прекратить опрашивать сообщения из MQTT и перезапустить, когда вам нужно.