2010-02-25 5 views
1

Я разрабатываю систему обработки сообщений на основе RabbitMQ для использования с различными веб-приложениями на основе PHP. PHP-демоны будут использоваться для извлечения элементов из очереди и выполнения обработки.Разработка системы обработки сообщений на основе сообщений

Идея, например, отправляет по электронной почте сотни получателей, очередь сообщений будет делать это асинхронно для веб-приложения.

Мой вопрос, с этим типом системы, что было бы лучшим способом для

  1. Detect прогресс пересылаемых писем т.е. (2/100)
  2. Знайте, когда весь процесс завершен.
  3. Когда известно 2, отправьте сообщение в веб-приложение, когда весь процесс будет завершен?

Для 1, я думаю, что демон отправил сообщение в очередь завершения, но где бы был размещен код для пунктов 2 и 3?

Надеюсь, что имеет смысл.

K

ответ

0

Похоже, что вам нужно троеборью:) ... PHP (в отличие от Java) не обеспечивает троеборью, так что единственный вариант, я могу видеть, для веб-сервер для опроса процесса демона. В качестве альтернативы, демон может записать статус завершения в статический файл, который может быть опрошен веб-сервером (небольшое улучшение производительности). Полллер может быть бесконечным циклом javascript (break on success type), который продолжает делать запрос ajax к файлу или веб-серверу.

Вы также можете посмотреть метод комет (серверный push), где демон может направить данные на сервер при завершении.

Сообщите мне, если это поможет или вам нужны какие-либо другие детали.

рассматривает Пинаки

+0

спасибо за советы, я буду проверять их. – kaylnn

Смежные вопросы