Загрузка больших файлов на сервер (без блокировки)

Итак, я работаю над php-приложением, которое должно взаимодействовать с приложением 4d. Приложение 4d использует веб-службу SOAP для внешней связи.

Веб-служба SOAP имеет функцию включения загрузки файлов в приложение 4d. Из-за нарушенного характера функции загрузки файлов веб-службы приложения 4d мы внедрили индикатор выполнения для загрузки файла на веб-сервер, а затем после этого попытаемся отправить файл на сервер приложений 4d. Но для клиента это было бы неплохо, так как человеку нужно было дождаться загрузки исходного файла на сервер, а затем снова при выполнении функции загрузки файла для переноса файла с веб-сервера на сервер приложений 4d.

Мой вопрос в том, Существуют ли какие-либо способы обработки загрузки файла, но не блокируются? Возможно, даже обойти функцию SOAP все вместе.

UPDATE: Я думал, может быть, использовать что-то вроде RabbitMQ для очереди каждого элемента загрузки файла, а затем позже обрабатывать с помощью script или что-то, что отделяется от приложения, чтобы оно не блокировало приложение.

4
задан moleculezz 19 окт. '12 в 17:53
источник поделиться
1 ответ

Ваше предлагаемое решение будет правильным способом его решения; принять загрузку через обычное веб-приложение, используя либо загрузку файлов HTML5, либо swfupload, чтобы показать индикатор выполнения для загрузки, затем сохранить его локально и поставить в очередь задачу Gearman или RabbitMQ, которую позже обрабатывает рабочий.

Работник будет извлекать файл локально и загружать его в удаленную службу (4d/SOAP), а затем устанавливать соответствующий статус в базе данных по окончании, чтобы пользователь знал, когда файл был обработан и добавлен в фактический сервер.

2
ответ дан MatsLindh 22 окт. '12 в 16:54
источник поделиться

Другие вопросы по меткам