Увеличьте время MQTT между PUBLISH и PUBCOMP
Я настроил подписчика MQTT весной, используя интеграцию Spring mqtt. В методе handleMessage я выполняю определенную бизнес-логику, которая требует времени. Во время тестирования я заметил, что когда я отправляю большое количество сообщений, Брокер повторно публикует то же сообщение, что и исходное сообщение (я проверил, является ли полезная нагрузка сообщения дублируемой, оно отправлялось как оригинальное). Брокер MQTT снова публикует сообщение еще до того, как подписчик сможет отправить PUCOMP. Уровень QOS установлен на 2
1 ответ
Вы не должны делать долгосрочные задачи в handleMessage
обратный вызов, поскольку он выполняется в сетевом потоке клиентов MQTT.
Если у вас есть долгосрочное задание, вы должны передать его в отдельный пул потоков для запуска.