delay

1. Сводка
Удерживает пакет на входном пине заданное число секунд, затем повторно отдаёт его на выход. Полезен для задания ритма живых процессов, дросселирования между двумя ногами и ожидания, пока внешняя система закончит «осаждать» файл, прежде чем к нему прикоснутся узлы ниже по потоку.
2. Когда использовать
- Задание ритма живому процессу — разнос последовательных сегментов, чтобы точка приёма успевала обработать каждый до прихода следующего.
- Дросселирование между двумя ногами — вставка передышки между «всплесковым» производителем и ровным потребителем, чтобы ни один не перегрузил другого.
- Ожидание «осаждения» watch-папки — удержание пакета на несколько секунд после начального события файла, чтобы любые поздние метаданные или сайдкар-файлы сбросились на диск прежде, чем их прочитают инспекции ниже по потоку.
- Реализация простой паузы повтора — нахождение между двумя этапами паттерна ручного повтора, чтобы вторая попытка срабатывала после ограниченной паузы.
3. Входы
Package—core.Package(динамический пин). Один пакет для удержания. Отображаемое имя пина на холсте берётся из ребра выше по потоку — например, подключение выхода download по имениget_xyz/get-packageприводит к появлению точно этого имени на плитке delay.Совместимые узлы выше по потоку:
4. Выходы
Package—core.Package(динамический пин). Тот же пакет со входа, повторно отданный без изменений после заданного ожидания. Имя выходного пина повторяет имя входного, чтобы цепочки читались согласованно.Совместимые узлы ниже по потоку:
- upload — записывает удержанный пакет, как только ожидание завершится.
- Всё, что принимает
core.Packageвыше по потоку, — пакет выходит неизменённым, поэтому те же выборы ниже по потоку, что и для выхода download.
5. Параметры

Форма «Настройки» содержит подпись и одно поле длительности.
Node Label (
string, по умолчанию пусто)Произвольное имя, отображаемое на плитке узла на холсте.
- Что задаёт. Подпись на плитке; на длительность ожидания не влияет. Плитка также авто-показывает заданное ожидание (например, Delay 3s) независимо от подписи.
- Когда менять. Задавайте, когда несколько узлов delay расставлены по одному графу, чтобы каждый был узнаваем с одного взгляда.
Delay (
int, по умолчанию1, обязательно, в секундах)Длительность ожидания в секундах до повторной отдачи пакета.
- Что задаёт. Сколько удержанный пакет ждёт до утекания ниже по потоку. Дробные секунды не поддерживаются.
- Когда менять. Выбирайте наименьшую задержку, удовлетворяющую требованию по ритму или осаждению; бо́льшие задержки добавляют реальное время каждой задаче, проходящей по этой ветви.
- Обязательно. да.
Соответствие JSON-ключей и названий полей
| JSON-ключ | Название поля |
|---|---|
n |
Delay |
6. Пример

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в Adaptive streaming with HLS, DASH and captions.
7. Где используется
- Adaptive streaming with HLS, DASH and captions — задаёт ритм этапу записи манифестов, чтобы упаковщики HLS и DASH успели сбросить плейлисты и индексы сегментов до начала загрузки.
8. Антипаттерны
- Блокировка критичного конвейера фиксированным ожиданием. Статическая задержка добавляет реальное время каждой задаче, включая те, чьё внешнее предусловие уже выполнено. Предпочитайте событийные ожидания (например, событие watch-папки), где исходная система может явно сигнализировать готовность; беритесь за delay только когда такого сигнала нет.
- Складывание узлов delay в ряд для составления длинных ожиданий. Две плитки delay 30 подряд выглядят на холсте так же, как одна delay 60. Последняя яснее, проще в настройке и очевидна следующему читающему; консолидируйте.
- Использование delay, чтобы маскировать гонки. Конвейер, которому нужен delay 10, чтобы «дать предыдущему этапу закончить», имеет несинхронизированную зависимость, которая в итоге сломается. Считайте повторную подстройку delay симптомом и чините сигнал выше по потоку.
- Включение delay через веерное слияние. Узел удерживает по одному пакету за раз; постановка его на ветвь, получающую несколько пакетов в полёте, поставит их в очередь, а не запустит ожидания параллельно, поэтому суммарное реальное время складывается. Держите delay на линейных сегментах.