delef
@delef
Разработчик (Crystal, Python, Ruby, PHP, JS)

Как реализовать множество консьюмеров RabbitMQ?

Допустим, у меня есть воркер (консьюмер):

$connection = new AMQPConnection($config['rabbitmq']);
$connection->connect();
$channel = new AMQPChannel($connection);

$exchange = new AMQPExchange($channel);
$exchange->setName('exchange_name');
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->setFlags(AMQP_AUTODELETE);
$exchange->declareExchange();

$queue = new AMQPQueue($channel);
$queue->setName('queue_name');
$queue->setFlags(AMQP_DURABLE);
$queue->declareQueue();
$queue->bind($exchange->getName(), $queue->getName());

while (true) {
    $envelope = $queue->get();

    if ($envelope) {
        var_dump($envelope->getBody());
        $queue->nack($envelope->getDeliveryTag());
    }
}

$connection->disconnect();


Каким путем лучше сделать поддержку 15 консьюмеров? Т.е. если я запускаю этот воркер, он будет кушать процесс, не хотелось бы запускать параллельно 15 php-cli процессов..
  • Вопрос задан
  • 745 просмотров
Пригласить эксперта
Ответы на вопрос 1
qonand
@qonand
Software Engineer
для управления процессами можно использовать например supervisord
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Ведисофт Екатеринбург
от 25 000 ₽
YCLIENTS Москва
от 200 000 до 350 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽