【问题标题】:RabbitMq consume by priorityRabbitMq 按优先级消费
【发布时间】:2016-12-21 13:18:46
【问题描述】:

我想使用来自 RabbitMq 队列的消息,但只针对一个 priority,我有我的队列 @9​​87654322@ 的优先级声明 和优先消息

Exchange    exchange.fanout
Properties  priority:   10
            content_type:   text/plain

现在我怎样才能只使用优先级2的消息

我试过这样

$channel->basic_consume(
    'priority-queue',
    '',
    false,
    false,
    false,
    false,
    function ($message) {
        /** @var AMQPMessage $message */
        echo $message->getBody();
        echo "\n";
    },
    null,
    new AMQPTable(
        [
            'x-priority' => 2,
        ]
    )
);

但是我收到了所有消息,当我使用 x-priority => ['I', 2] 时,我收到了PRECONDITION_FAILED - invalid arg 'x-priority' for queue 'priority-queue'

【问题讨论】:

    标签: php rabbitmq amqp


    【解决方案1】:

    现在我怎样才能只使用优先级为 2 的消息

    执行此操作的最简单方法是更改​​路由,以便将“优先”消息发送到只有这些消息会到达的队列。

    那么您就不必担心队列中的其他消息,并且您的消费者可以专门处理此队列中的任何消息...恰好是此“优先级”的消息

    【讨论】:

    • 现在我有了这样的解决方案,我有x 队列,我的交换决定将我的消息放在哪里。但由于有可能将所有消息保留在一个队列中,我想尝试这个解决方案
    猜你喜欢
    • 2020-04-20
    • 2012-05-31
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    相关资源
    最近更新 更多