Node-RED:Библиотеки/node-red/Delay

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 61597 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Нода «Delay»

Nodered node delay.PNG

Задерживает сообщения, проходящие через нее.

Свойства присылаемого сообщения

  • Свойство «delay» (число) – задает задержку (в миллисекундах), которая будет применена к присланному сообщению. Чтобы воспользоваться им, в поле «Action» выберите пункт «Delay each message», а в поле ниже выберите пункт «Override delay with msg.delay». Это перезапишет интервал задержки, что был задан по умолчанию
  • Свойство «reset» – если в присланном сообщении есть это свойство, имеющее хоть какое-то значение, то все исходящие сообщения, задержанные нодой «Delay», будут очищены и не будут отправлены
  • Свойство «flush» – если в присланном сообщении есть это свойство, имеющее хоть какое-то значение, то все исходящие сообщения, задержанные нодой «Delay», будут сразу же отправлены дальше

Подробное описание

Задержка может быть либо фиксированной («Fixed delay»), либо случайной («Random delay») – для этого в поле «Action» сначала должен быть выбран режим «Delay each message». Случайная задержка задается для каждого сообщения по отдельности исходя из указанного диапазона (поле «Between») или динамически.

Режим «Rate limit» (выбирается в поле «Action») задает то, с какой скоростью (количество сообщений на единицу времени – например, 1 в секунду) сообщения будут проходить через ноду «Delay» – она задается в секции «Rate». В статусе ноды в это время будет показано, сколько сообщений в данный момент находится в очереди на отправку. Опционально можно задать, чтобы нода «Delay» отклоняла все промежуточные сообщения сразу при их прибытии – для этого поставьте галочку рядом с пунктом «drop intermediate messages».

Ограничение скорости отправки можно применить ко всем сообщениям сразу (режим «All messages») или к группам сообщений исходя из того, какое значение хранится у них в свойстве «msg.topic» (режим «For each msg.topic»). При использовании второго режима промежуточные сообщения будут отклоняться автоматически. Кроме того, в этом режиме можно задать, как нода будет чередовать «выпуск» сообщений из разных групп. Если в предпоследнем меню выбрать пункт «Send all topics», нода «Delay» в момент «выпуска» одновременно отправит самые последние сообщения, принадлежащие ко всем группам (со всеми имеющимися «topic»). Но если выбрать в нем пункт «Send each topic in turn», нода «Delay» сначала отправит самое последнее сообщение с одним «topic», в следующий раз – с другим «topic», затем с третьим и так по кругу.

См.также

Внешние ссылки