Как запустить несколько параллельных потребителей Rabbitmq/AMQP в PHP и / или Symfony2?
У меня есть сборщик новостей /RSS-агрегация, где я транслирую сообщения через эту библиотеку.
https://github.com/videlalvaro/php-amqplib/
В настоящее время у меня есть 1 вещатель / производитель и 1 потребитель.
Есть ли способ, чтобы несколько потребителей работали параллельно через PHP? Я знаю, что PHP не поддерживает это изначально. Это может быть фактически сделано через cURL, но afaik cURL в основном используется для сетевых / веб-запросов.
Итак, есть ли способ для меня достичь этого в PHP? Конечно, я могу сделать это в Python/Java, но мой уровень не так хорош в обоих.
1 ответ
Вам действительно нужна система обмена сообщениями, как rabbitmq? IMHO gearman - более подходящее решение для вашей задачи. Начать с сайта gearman - это хорошо для начала.
Позволяет выполнять работу параллельно, обрабатывать баланс нагрузки
Вы можете запускать и контролировать несколько экземпляров рабочих параллельно с супервизором. Вот хороший пример, как установить и настроить супервизор
Я использую комбинацию этих двух сервисов для одной и той же задачи - я собираю rss из нескольких источников, и это работает как шарм
$gearman_top
Queue Name | Worker Available | Jobs Waiting | Jobs Running
---------------------------------------------------------------
parseFeed | 2 | 0 | 0
---------------------------------------------------------------