js_periodic

Директива `js_periodic` позволяет настроить периодическое выполнение JavaScript в контексте stream-сервера в NGINX.

Синтаксисjs_periodic interval;
По умолчаниюnone
Контекстstream server
Аргументыany

Описание

Директива 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.

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