echo_sleep
Директива `echo_sleep` приостанавливает обработку запросов на указанную длительность.
Описание
Директива 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.';
}Чрезмерное использование этой директивы может привести к существенным узким местам в производительности.
Использование дробных секунд может работать не так, как ожидается, если это не поддерживается конфигурацией сервера.