Message Expiry MQTT ограничивает ожидание доставки, а не завершение обработки
Фотография конкретного исполнения не приложена.
Устаревшее измерение может стать бесполезным ещё до восстановления subscriber. Message Expiry помогает убрать ожидающие копии, но не заменяет прикладное правило свежести. Полученное сообщение всё равно нуждается в проверке контекста и времени.
MQTT 5 задаёт lifetime в секундах. Если срок прошёл до начала дальнейшей доставки соответствующему subscriber, сервер удаляет эту копию. При пересылке свойство уменьшается на время ожидания у сервера. Отсутствие свойства означает отсутствие такого протокольного expiry.
Из этого не следует, что broker прервёт любую уже начатую обработку в приложении ровно на границе срока. Сам payload также может содержать собственное время измерения. Нужно различать срок хранения сообщения, возраст данных и допустимое время выполнения команды.
В приёмке проверяют offline-очередь с коротким и достаточным lifetime. Сопоставляют оставшийся интервал у получателя с реальным возрастом события. Отчёт должен показывать, какие сообщения удалены до доставки и какие приняты приложением. Одна настройка Message Expiry не доказывает, что устаревшая команда никогда не будет выполнена после долгого внутреннего ожидания обработчика.
Основание — MQTT Version5.0 OASIS Standard07March2019, official os HTML edition, разделы MQTT5.0 3.3.2.3.3 Message Expiry Interval;4.3 QoS processing. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — MQTT Version 5.0, OASIS Standard от 7 марта 2019 года. Поддержка возможностей конкретными broker и client library, дисковое хранение и политика доступа не проверялись. Соединения, подписки, сообщения и настройки рабочих систем не выполнялись; приведены критерии будущей приёмки.