record_lock

Директива record_lock контролирует доступ к файлам при записи потоков в модуле NGINX RTMP, гарантируя эксклюзивный доступ на запись во время записи потока.

Синтаксисrecord_lock on | off;
По умолчаниюoff
Контекст
Аргументы1

Описание

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

Директива принимает один аргумент — 'on' или 'off'. Если 'on', механизм блокировки будет активирован, тогда как установка 'off' отключает его, позволяя совместный доступ к файлу, что может быть рискованно с точки зрения целостности данных. Поведение этой директивы следует учитывать в контексте конкретных требований приложения для потоковой передачи; например, включение блокировки может немного снизить производительность из-за ожидания доступа, но обеспечивает большую безопасность записываемого результата.

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

application live {
    live on;
    record all;
    record_path /var/www/recordings;
    record_lock on;
}

Ошибка при использовании record_lock off может привести к повреждению файлов, если несколько потоков одновременно записывают в один и тот же файл вывода.

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

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

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