RabbitMq потребляет по приоритету
Я хочу использовать сообщения из очереди 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'
1 ответ
А теперь как я могу принимать сообщения только с приоритетом 2
Самый простой способ сделать это - изменить маршрут так, чтобы ваши "приоритетные" сообщения отправлялись в очередь, куда будут поступать только эти сообщения.
тогда вам больше не придется беспокоиться о других сообщениях в очереди, и ваш потребитель может быть выделен для любого сообщения в этой очереди... которое может быть только сообщениями с таким "приоритетом"