是否支持MassTransit中的RabbitMQ强制标志

时间:2016-10-05 11:47:40

标签: rabbitmq masstransit

如果消息未传递到任何队列,我希望在使用MassTransit发送到RabbitMQ交换时获得异常。看起来像RabbitMQ强制标志可以用于这样的事情,但我还没有找到任何方法来使用MassTransit设置它。这支持了吗?

我的代码:

var personSendEndpoint = busControl.GetSendEndpoint(new Uri($"rabbitmq://localhost/{personQueueName}")).Result;

// An exception should occur on the following call if the message is not delivered to any queue
personSendEndpoint.Send(new PersonUpdated() { Name = "Dorian Gray", Key = Guid.NewGuid() });

1 个答案:

答案 0 :(得分:1)

您可以设置Mandatory标记,但没有可爱的扩展方法为您执行此操作。基本上,您可以执行以下操作:

await endpoint.Send(new PersonUpdate(...), context =>
{
    (context as RabbitMqSendContext).Mandatory = true;
});

如果没有针对交换的绑定,那将设置告诉RabbitMQ抛出异常的标志。