Я разрешаю пользователям загружать видео, а затем они преобразуются с помощью ffmpeg. Видео занимает очень много времени, чтобы преобразовать, что обычно приводит к ошибке. Я сделал свое исследование без везения, где я должен начать.
В основном, я хочу, чтобы пользователь мог загрузить видео, а затем отобразить сообщение, в котором говорится, что видео обрабатывается, и вы будете уведомлены, когда это будет доступно. Тем временем я хочу, чтобы видео было конвертировано за кулисами и позволило пользователю покинуть страницу или закрыть браузер. Я использую сервер Windows.
Как я могу это сделать?
Ниже приведено краткое описание того, как создать собственную очередь с помощью системы планирования, такой как Cron:
queue
таблиц базы данных, содержащую (id, created_at, file_path, id_user, result, error)
. Путь file_path
содержит местоположение загруженного видео для обработки, результат равен null
перед обработкой, а затем true/false
после этого в зависимости от успеха, и если он сбойной error
содержит какие-либо сообщения. При необходимости первичный ключ таблицы пользователя можно сохранить здесь. ps aux | grep (scriptname)
ps aux | grep (scriptname)
чтобы помочь здесь, если вы работаете в * nix-подобной операционной системе. Внутри вашего веб-приложения вам нужно несколько изменить рабочий процесс – вместо того, чтобы ожидать немедленного обработки видео, вам необходимо:
Этот подход очень полезен для общего хостинга, где вы не можете установить свои собственные процессоры очереди. Однако, если вы находитесь в VPS или облачной системе, вы можете захотеть изучить Gearman или одну из многих других систем очередей . Они немного сложнее, чем выше, но имеют больше возможностей для управления очередями работы.