echo_sleep

Директива `echo_sleep` приостанавливает обработку запросов на указанную длительность.

Синтаксисecho_sleep time;
По умолчаниюnone
Контекстlocation, if in location
Аргументы1

Описание

Директива echo_sleep является частью модуля echo для NGINX и позволяет вводить намеренную паузу в обработке запроса. Это может быть особенно полезно при моделировании задержек в ответах для тестирования или для корректной обработки асинхронного поведения. Директива принимает один аргумент: длительность сна, указанную в секундах. Также она может принимать дробные секунды для большей точности.

При использовании echo_sleep директива блокирует запрос на заданную длительность, прежде чем продолжить обработку остальной части конфигурации NGINX для этого запроса. Это влияет на производительность, особенно в ситуациях с высокой нагрузкой. Поэтому её следует использовать умеренно и в основном в тестовых средах, а не в рабочих (производственных) конфигурациях, где она может привести к ухудшению производительности или увеличению задержки для пользователей.

Учитывая её размещение в конфигурации, echo_sleep можно использовать как в блоках location, так и в условиях if внутри этих блоков. Поэтому понимание контекста размещения имеет решающее значение для достижения ожидаемого поведения без непредвиденных побочных эффектов или конфликтов с другими директивами.

Пример конфига

location /sleep_example {
    echo_sleep 2;  # pauses for 2 seconds
    echo 'Response after sleep.';
}

Чрезмерное использование этой директивы может привести к существенным узким местам в производительности.

Использование дробных секунд может работать не так, как ожидается, если это не поддерживается конфигурацией сервера.

← Ко всем директивам