Я пытаюсь настроить приоритетную очередь. Без приоритета все работает нормально, но мне нужно расставить приоритеты для сообщений.
Я использую RabbitMqBundle 1.14 и rabbitmq-supervisor-bundle 3.1 с RabbitMQ 3.5.7 (Erlang 18.3)
Вот файл config.yml:
old_sound_rabbit_mq:
connections:
default:
host: '127.0.0.1'
port: 5672
user: 'xxx'
password: 'xxx'
vhost: '/'
lazy: false
connection_timeout: 3
read_write_timeout: 3
# requires php-amqplib v2.4.1+ and PHP5.4+
keepalive: false
# requires php-amqplib v2.4.1+
heartbeat: 0
#requires php_sockets.dll
use_socket: true # default false
producers:
global:
connection: default
exchange_options: {name: 'global', type: direct}
queue_options:
name: global
consumers:
global:
connection: default
exchange_options: {name: 'global', type: direct}
queue_options: {name: 'global', arguments: {'x-max-priority': ['I', 10]} }
callback: rabbitmq_simu_service
И сообщение отправлено в очередь:
$msg = array();
$msg['id'] = $id;
$msg['action'] = 'simu';
$additionalProperties = ['priority' => 4] ;
$routing_key = '';
$this->container->get('old_sound_rabbit_mq.global_producer')->publish(serialize($msg), $routing_key , $additionalProperties);
При отправке сообщения я получаю следующую ошибку:
PRECONDITION_FAILED - неэквивалентный аргумент 'x-max-priority' для очереди 'global' в vhost '/': не получен, но текущим является значение '10' типа 'signatureint'
Я тоже пробовал в config.yml:
queue_options: {name: 'global', arguments: {'x-max-priority': 10} }
В этом случае я не получил ошибку, но сообщения не используются.
Кто-нибудь знает, как отправить приоритетное сообщение?