Как установить приоритет потребителя с помощью MassTransit и RabbitMQ - PullRequest
0 голосов
/ 29 июня 2018

MassTransit предоставляет функции для добавления очереди и обмена аргументами, но я не могу найти ничего похожего для потребителя.

Я хотел бы иметь возможность установить приоритет потребителей (аргумент x-priority) согласно документации RabbitMQ здесь: https://www.rabbitmq.com/consumer-priority.html

Возможно ли это с помощью MassTransit?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Согласно документации RabbitMQ:

Установите аргумент x-priority в методе basic.consume на целое число значение. Потребители, которые не указывают значение, имеют приоритет 0 . Большие числа указывают на более высокий приоритет, а также положительные и можно использовать отрицательные числа.

Когда вы настраиваете потребителя, вы можете использовать ConsumerPriority в этом случае, чтобы установить более низкий приоритет

_busControl = Bus.Factory.CreateUsingRabbitMq(cfg =>
{
    IRabbitMqHost host = cfg.Host(new Uri(ConfigurationManager.AppSettings["RabbitMQHost"]), h =>
    {
        h.Username(ConfigurationManager.AppSettings["RabbitMQUsername"]);
        h.Password(ConfigurationManager.AppSettings["RabbitMQPassword"]);
    });

    cfg.ReceiveEndpoint(host, "Audit", e =>
    {
        e.PrefetchCount = 2;
        e.ConsumerPriority = -1;
        e.Consumer<AuditConsumer>();
    });
});

Rabbit Consumer

0 голосов
/ 29 июня 2018

Это должно быть достаточно просто, чтобы добавить это в MT, я создам проблему на GitHub.

...