@vadim6446

Почему сайт зависает при запуске внешней программы?

Добрый день! Есть небольшой сайт (крутится на сервере c nginx), который генерирует видео с помощью ffmpeg и отдает клиенту на скачивание.
Код:

header('Content-type: video/mp4');

$cmd = "ffmpeg -i file.mp4..."
$process = proc_open($cmd, $descriptorspec, $pipes, getcwd());
 if (is_resource($process)) {
    while(!feof($pipes[1])){
        $chunk = fread($pipes[1], 500*1024);
        $stdout_size += strlen($chunk);
        if ($chunk !== false && !empty($chunk)){
            echo $chunk;
            if (ob_get_length()){            
                @ob_flush();
                @flush();
                @ob_end_flush();
            }
        }
    }
}


Все это дело работает, но есть минус, заключается он в том, что когда 1 из клиентов скачивает видео, сайт недоступен (в браузере вечная загрузка). Как только клиент заканчивает качать видео, сайт снова становится доступным. Подскажите, пожалуйста, в чем может причина? И как можно решить данную проблему?
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
karabanov
@karabanov
Системный администратор
Добавь воркеров в конфиге пула php-fpm

Ещё можно попробовать php-fpm обновить...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы