繁体   English   中英

RabbitMq按优先级消耗

[英]RabbitMq consume by priority

我想使用来自RabbitMq队列的消息,但只有一个priority ,我有队列x-max-priority:10优先级声明和优先级的消息

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'

现在我如何只使用优先级为2的消息

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

然后你永远不必担心队列中的其他消息,你的消费者可以专用于这个队列中的任何消息......这恰好只是这个“优先级”的消息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM