Paho-MQTT проверить размер очереди сообщений - PullRequest
0 голосов
/ 17 июня 2019

Я публикую сообщения MQTT от Arduino и подписываюсь на сообщения от Raspberry Pi. Иногда публикация идет быстрее, чем Raspberry может получить (и обработать).

Я ищу способ проверить, сколько сообщений находится в очереди на стороне Малины. Я использую Paho-MQTT . Я вижу только возможность установить максимальный размер очереди, но как я могу проверить текущий размер очереди? (Если возможно.)

1 Ответ

1 голос
/ 17 июня 2019

В посреднике нет очереди, все сообщения доставляются по мере их публикации.

Клиент Paho является однопоточным, а обратный вызов принятого сообщения обрабатывается в сетевом потоке, поэтому сообщения могут копироваться в сетевой стек (для сообщений QOS0). Сообщения QOS1 / 2 будут резервироваться в брокере до тех пор, пока не будет завершено квитирование QOS для текущего сообщения.

Параметр сообщения max_queued определяет количество сообщений QOS 1/2, которые клиент примет для публикации перед блокировкой, а не количество входящих сообщений, которые он поставит в очередь.

Если вы хотите измерить очередь сообщений измеримым способом, тогда обратный вызов «Полученные сообщения» поместит сообщения в локальную очередь, а второй поток (или пул потоков, если они могут обрабатываться параллельно) получит сообщения от локального очереди.

...