Отправка сообщения в приоритетную очередь с bind = true - PullRequest
0 голосов
/ 05 марта 2020

У меня возникла проблема при отправке сообщения на Priority Queue. Если для bind задано значение true, то я получаю ошибку PRECONDITION_FAILED, так как отправитель пытается создать ту же очередь, но без аргумента x-max-priority.

Полная ошибка:

PRECONDITION_FAILED - неэквивалентный аргумент 'x-max-priority' для очереди 'TestQueue' в vhost '/': получено нет, но текущим является значение '1' типа 'signatureint'

Могу ли я настроить отправку конечной точки Uri, чтобы она отправляла сообщение на Priority Queue вместо попытки создать другую очередь без аргумента x-max-priority? Может быть, есть способ передать этот аргумент через конечную точку отправки Uri?

  • этот SendEndpoint работает: rabbitmq://host:5672/TestQueue?queue=TestQueue

  • этот SendEndpoint завершается ошибкой: rabbitmq://host:5672/TestQueue?queue=TestQueue&bind=true

Мы хотим сохранить аргумент bind=true, поскольку он дает нам гарантию доставки сообщений.

Ожидаемое поведение

Ожидается, что Send выберет очередь с приоритетами, потому что приоритет установлен в SendContext:

await sendEndpoint.Send(message, sendContext =>
{
  context.SetPriority(1);
});
...