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 процессов..
  • Вопрос задан
  • 756 просмотров
Пригласить эксперта
Ответы на вопрос 1
qonand
@qonand
Software Engineer
для управления процессами можно использовать например supervisord
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы