Php 使用优先级时RabbitMQ使用者引发错误

Php 使用优先级时RabbitMQ使用者引发错误,php,rabbitmq,Php,Rabbitmq,我正在尝试切换我的任务队列以利用优先级支持,我能够设置创建任务的x-max-priority值,但是当我尝试获取任务时,它抛出了一个错误 是否有使用使用者获取任务的特殊方法 $channel->queue_declare('task_queue', false, true, false, false); PhpAmqpLib\Exception\AMQPProtocolChannelException'和消息 “前置条件_失败-队列的参数“x-max-priority”不相等 vhost

我正在尝试切换我的任务队列以利用优先级支持,我能够设置创建任务的x-max-priority值,但是当我尝试获取任务时,它抛出了一个错误

是否有使用使用者获取任务的特殊方法

$channel->queue_declare('task_queue', false, true, false, false);
PhpAmqpLib\Exception\AMQPProtocolChannelException'和消息 “前置条件_失败-队列的参数“x-max-priority”不相等 vhost“vhost”中的“task_queue”:未收到任何内容,但当前值为 中类型为“signedint”的“100” /var/www/html/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Channel/AMQPChannel.php:188


您需要
$channel->queue\u declare
,两边的参数相同

因此,必须在两侧设置priority属性,如下所示

$channel->queue_declare('task_queue', false, true, false, false, false, $parameters);
其中,
$parameters
是一个声明如下的数组

$parameters = [
    'x-max-priority' => ['I', 100],
];

您需要
$channel->queue\u declare
,两边的参数相同

因此,必须在两侧设置priority属性,如下所示

$channel->queue_declare('task_queue', false, true, false, false, false, $parameters);
其中,
$parameters
是一个声明如下的数组

$parameters = [
    'x-max-priority' => ['I', 100],
];

谢谢,我可以用以下命令声明:$parameters['x-max-priority']=array('I',100)$通道->队列声明('task\u queue',false,true,false,false,false,$parameters);我尝试使用优先级(在1-100之间随机设置)插入500k个任务,我注意到在200-300k个任务之后,它变得非常慢(240/s),RabbitMQ是否必须对这些任务进行排序/索引?@Kevin我知道RabbitMQ有优先级队列的开销,但是,我的工作负载中没有一个用例可以同时出现如此大量未使用的消息。所以我不知道,谢谢,我可以用这个来声明:$parameters['x-max-priority']=array('I',100)$通道->队列声明('task\u queue',false,true,false,false,false,$parameters);我尝试使用优先级(在1-100之间随机设置)插入500k个任务,我注意到在200-300k个任务之后,它变得非常慢(240/s),RabbitMQ是否必须对这些任务进行排序/索引?@Kevin我知道RabbitMQ有优先级队列的开销,但是,我的工作负载中没有一个用例可以同时出现如此大量未使用的消息。所以我不知道