PHP Flock и загрузка файлов - PullRequest
0 голосов
/ 22 октября 2010

У меня есть два процесса, выполняющиеся в разных сценариях, не зависящих друг от друга.

  1. PHP # 1 скрипт читает имя файла файла и записывает его в БД
  2. PHP # 2 скрипт загружает файл

Я хотел бы создать третий сценарий (также независимый), который будет выполняться только после того, как сценарий №2 полностью завершит загрузку файла.

Я думаю об использовании PHP-функции flock для определения, заблокирован ли файл. Я полагаю, что скрипт № 3 должен будет содержать какую-то функцию проверки скопления, которая была установлена ​​на таймере, чтобы проверить, был ли файл разблокирован, и если да, чтобы продолжить.

Примечание: скрипт # 3 будет знать имя файла для проверки

Есть идеи? Было бы намного проще, если бы файлы могли быть объединены в цепочку, но они выполняются независимо.

Ответы [ 2 ]

0 голосов
/ 22 октября 2010

Я не знаю, заблокирован ли файл все время во время записи, поэтому I не будет полагаться на это.

Я бы проверял изменения размера файла с интервалами (в сочетании с flock). И когда файлы перестают расти, считайте, что загрузка завершена.

Если у вас есть контроль над вторым сценарием, просто запустите третий, когда он завершит выполнение (``). Или, если это невозможно, используйте файл или что-то еще, чтобы передать состояние загрузки из # 2 и прочитать его из # 3.

0 голосов
/ 22 октября 2010

это сценарий 2 на веб-странице? если это так, я бы вызвал AJAX-вызов на сервер для запуска сценария 3. Страница не может быть обработана до тех пор, пока сценарий не будет выполнен, и после того, как она отобразится, она может выполнить ответный вызов при загрузке страницы ...

...