如何使用MassTransit和RabbitMQ设置消费者优先级

时间:2018-06-29 03:17:20

标签: rabbitmq masstransit

MassTransit公开了用于添加队列和交换参数的函数,但我找不到与消费者类似的东西。

我希望能够根据以下RabbitMQ文档设置使用者的优先级(x-priority参数):https://www.rabbitmq.com/consumer-priority.html

使用MassTransit可以吗?

2 个答案:

答案 0 :(得分:2)

将其添加到MT应该很容易,我将在GitHub上创建一个问题。

答案 1 :(得分:0)

根据RabbitMQ文档:

  

将basic.consume方法中的x-priority参数设置为整​​数   值。 未指定值的消费者的优先级为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