Лучший способ получить уведомление о завершении загрузки файла - PullRequest
3 голосов
/ 21 декабря 2011

Я создал транскодер видео, используя ffmpeg.Пользователь загружает RAW-видео - очень большие, около 20 ГБ - через FTP.

В настоящее время php-скрипт отслеживает локальные пути каждые 5 секунд с использованием следующей стратегии.

  1. Поиск локальной файловой системы.
  2. Если появляется «новый» файл, добавьте его в базу данных с измененным временем и размером.
  3. Через 5 секунд снова проверьте измененное время и размер,
    1. Неизменено: установите статус как [ГОТОВО] и закодируйте видео в каталог «./output».(«Вывод» явно исключен из мониторинга)
    2. Изменено: Подождите еще 5 секунд.

Работает очень хорошо, но расходует некоторое количество ресурсов процессора нанайти «новый файл».Есть ли способ получить «точное время», когда загрузка файла завершается?

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

если вы можете установить inotify, то это очень просто с помощью bash-скрипта.в противном случае сценарий bash может быть еще более эффективным.

обновление: php поддерживает inotify с помощью: php.net/manual/en/book.inotify.php

1 голос
/ 21 декабря 2011

Попробуйте создать демон perl, который проверяет наличие новых файлов, я думаю, он будет менее ресурсоемким. Кроме того, еще один Unix, как альтернатива, и я думаю, в целом лучше: http://en.wikipedia.org/wiki/File_Alteration_Monitor

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...