exec_publish_done

Директива exec_publish_done позволяет выполнить указанную команду после успешной публикации потока в модуле NGINX RTMP.

Синтаксисexec_publish_done command;
По умолчаниюnone
Контекст
Аргументы1+

Описание

Директива exec_publish_done используется в модуле NGINX RTMP для выполнения указанной внешней команды после успешного завершения публикации потока. Эта возможность особенно полезна для запуска внешних процессов, таких как логирование, аналитика или другие задачи после публикации, связанные с рабочим процессом стриминга. Команда может быть скриптом или исполняемым файлом, который получает контекст потока в качестве аргументов, что позволяет осуществлять динамические действия после публикации.

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

При вызове директива взаимодействует напрямую с циклом событий для асинхронного выполнения команд, чтобы основной процесс стриминга не блокировался. Важно аккуратно обрабатывать внешние команды, чтобы избежать узких мест в производительности. Конфигурация также должна обеспечивать надлежащее управление ресурсами, чтобы предотвратить утечки памяти или чрезмерное использование ресурсов во время интенсивных стриминговых событий.

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

application live {
    live on;
    exec_publish_done /usr/local/bin/post_publish_script.sh $name;
}

Убедитесь, что указанная команда доступна на сервере и имеет права на выполнение.

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

Будьте осторожны при передаче аргументов во внешние скрипты; убедитесь, что они при необходимости правильно экранированы.

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