Постоянно работает скрипт PHP, ожидающий транскодирования видео - PullRequest
2 голосов
/ 12 марта 2011

Я делаю сервер транскодирования, который использует FFMPEG для конвертации видео в flv.После того, как пользователь загружает видео, оно ставится в очередь для обработки в Amazon Simple Queue Service.Система Linux Ubuntu.

Вместо того, чтобы запускать CRON каждые 1 мин. Интересно, можно ли будет постоянно запускать несколько сценариев PHP (загружать файлы в очереди, загружать процессы и т. Д.).У каждого из них будет своя собственная очередь, которая будет читаться каждые 10 секунд или около того, ища новые задачи.

Мой вопрос:

Как определить, запущен ли скрипт?Я запускал CRON каждые 1 минуту, и если одна из программ не запускалась, я загружал ее снова.Как такие вещи делаются на Linux?PID файлы?

спасибо за помощь, ian

Ответы [ 4 ]

1 голос
/ 12 марта 2011

Вместо того, чтобы делать это только с чистым PHP, я бы, вероятно, выбрал решение, основанное на gearman (цитата wikipedia ) :

Gearman - приложение с открытым исходным кодом. фреймворк [...].
Шестерня предназначен для распространения соответствующих компьютерные задачи на несколько компьютеров, такие большие задачи можно сделать больше быстро.


Он работает хорошо с PHP, благодаря расширению gearman , и справится с большинством задач для вас.

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

0 голосов
/ 12 мая 2017

Я создал похожий скрипт специально для этой проблемы

Проверка: https://github.com/SirNarsh/EasyCron Идея состоит в том, чтобы сохранить PID скрипта в файл, а затем проверить, запущен ли процесс, проверив наличие / proc / PID

0 голосов
/ 12 марта 2011

В репозитории PHP PEAR есть класс System_Daemon для создания демонов из PHP. Я использовал его для пары систем с хорошими результатами.

0 голосов
/ 12 марта 2011

Да, вы можете использовать PID файлы
Или временная таблица, или memcache, например,

Но мне так нравится:
По cron запускается скрипт, который выполняет конвертирование видео, и он проверяет, завершен ли процесс или нет
Этот скрипт cron получает фильм, который нужно конвертировать из базы данных или файла

...