Приостановка и возобновление входящего адаптера MQTT

У нас есть: конвертер, который принимает сообщения из тем mqtt, анализирует, обрабатывает их и после определенных проверок отправляет их в другую систему обмена сообщениями. Если целевая система недоступна, мы создаем определенное событие и отправляем его через внедренный экземпляр org.springframework.context.ApplicationEventPublisher.

Мы хотели бы: в случаях, когда целевая система обмена сообщениями недоступна, чтобы иметь возможность приостановить (а затем возобновить) потребление наших входящих MQTT-адаптеров.

У нас есть коллекция ссылок на эти адаптеры, и мы хотели бы написать "Toggler", который реализует ApplicationListener и основан на событии, либо приостанавливает, либо возобновляет потребление.

Как и любой экземпляр MessageProducerSupport, MqttPahoMessageDrivenChannelAdapter имеет защищенные методы doStart() и doStop(). Следует ли пытаться использовать их в целях приостановки / возобновления?

1 ответ

Решение

MessageProducerSupport расширяет AbstractEndpoint который реализует SmartLifecycle с общественностью start() а также stop(), Вы можете просто вызвать их, чтобы прекратить опрашивать сообщения из MQTT и перезапустить, когда вам нужно.

Другие вопросы по тегам