несколько очередей в одном канале - PullRequest
0 голосов
/ 16 сентября 2018

Я использую rabbitMq для управления и работы с очередями.У меня есть несколько очередей.их количество не является конкретным.Я использую прямой обмен для публикации сообщений.как я могу использовать все сообщения каждой очереди (на основе routing_key), используя только один канал?в это время я предполагаю, что у меня есть 5 очередей.Я использовал для цикла и создать канал для каждой очереди.как это:

 stuff=["shoes","pants","hats","jewels","glasses"];

  stuff.forEach(cnt => 
    {
        var ex = 'stuff';
        var cq=cnt;

        amqp
        .connect('amqp://localhost')
        .then(conn => conn.createChannel())
        .then(ch => {

            ch.assertExchange(ex, 'x-delayed-message', { durable: true, 
     arguments: { 'x-delayed-type': 'direct' } })
     return ch
             .assertQueue(cq, { durable: true })
             .then(() =>  {   ch.bindQueue(cq, ex, cq)  /*second cq is routing*/  
                 })
                  .then(() => {
                  ch.consume(cq, (msg) =>
                  {

                   console.log("['%s']  '%s'",cq, msg.content.toString()); 
                   if( msg.content.toString()!=null)
                   console.log(cq);

                          reciveMSG=JSON.parse(msg.content.toString());

                    }, { noAck: true });
               }); 
         }) 


     });

но я хочу сделать это только с одним каналом.потому что это более оптимистично и использует меньше памяти (я не знаю, правда это или нет!). Есть ли способ для обработки неопределенного количества очередей?

1 Ответ

0 голосов
/ 17 сентября 2018

Вы должны использовать один канал на очередь, чтобы использовать сообщения.Это является частью спецификации AMQP, и тут нет пути.


ПРИМЕЧАНИЕ: команда RabbitMQ контролирует список рассылки rabbitmq-users и только иногда отвечает на вопросы по StackOverflow.

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