Выполните большой пакет запросов к веб-сервису из веб-приложения. Следить за прогрессом - PullRequest
0 голосов
/ 22 февраля 2012

Я создаю веб-приложение с PHP / MySQL, используя инфраструктуру Yii.Ключевым аспектом этого приложения является администрирование большого количества объектов;и выполнять большие пакеты запросов к веб-сервису SOAP для обновления кредита на этих объектах (картах).

Мне нужно реализовать какую-то очередь для управления процессом выполнения пакета (+/- 2000)запросы.

Я не могу понять, как лучше идти;

  • Фоновая работа;как реализовать это с php / yii.Как оставить отзыв пользователю

  • Реализовать очередь AJAX?Есть ли лучшие практики для этого?Риск прерывания при закрытии браузера?

1 Ответ

1 голос
/ 23 февраля 2012

У меня была похожая проблема.Лучший способ - выполнить этот пакет в фоновом режиме.Чтобы оставить отзыв пользователям, вы должны записать текущее состояние в вашу БД (например, в таблицу "batch_status").И когда пользователь хочет увидеть текущую ситуацию, вы можете просто получить данные из вашей таблицы.Если у вас есть проблемы с реализацией, вы можете задать мне вопрос об этом в комментариях;)

Чтобы запустить фоновый процесс в php, добавьте вашу команду ' > /dev/null & echo $!'.Затем выполните вашу команду: $lastLine = exec($cmd, $output, $return_var);.После этого вы получаете идентификатор процесса в переменной $lastLine.Как использовать CLI в YII вы можете узнать здесь: http://www.yiiframework.com/doc/guide/1.1/en/topics.console

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