js_periodic
Директива `js_periodic` позволяет настроить периодическое выполнение JavaScript в контексте stream-сервера в NGINX.
Описание
Директива js_periodic является частью динамических модулей NGINX njs и позволяет выполнять JavaScript-функции через заданные интервалы. Эта директива работает в контексте stream-сервера, позволяя разработчикам выполнять действия с регулярной периодичностью без необходимости выносить их в внешнее приложение или сервис.
При использовании js_periodic разработчики могут указывать, как часто должна выполняться конкретная JavaScript-функция, задавая значение интервала. Реализация поддерживает дополнительные параметры, такие как jitter, для настройки времени выполнения с целью балансировки нагрузки и других эксплуатационных задач. Директива использует NJS runtime для асинхронного выполнения JavaScript-функции, что гарантирует отзывчивость сервера даже при выполнении плановых задач.
Обычно это предусматривает настройку цикла событий, который запускает указанный JavaScript-код, после чего он может выполнять операции, такие как мониторинг проверок работоспособности, выполнение действий на основе состояния сервера или любую пользовательскую логику, которая должна выполняться периодически. Это делает директиву особенно полезной в сценариях, где требуются фоновые обработки или плановые задачи без блокировки основного потока сервера.
Пример конфига
stream {
server {
listen 12345;
js_periodic 5000; # Executes every 5 seconds
# additional configuration
}
}Убедитесь, что определённая функция JavaScript не блокирует главный цикл событий.
Учтите нагрузку на сервер: частое выполнение может повлиять на производительность, если интервал слишком короткий.
Убедитесь, что асинхронные операции правильно обрабатываются в логике JavaScript.