如果消息未传递到任何队列,我希望在使用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() });
答案 0 :(得分:1)
您可以设置Mandatory
标记,但没有可爱的扩展方法为您执行此操作。基本上,您可以执行以下操作:
await endpoint.Send(new PersonUpdate(...), context =>
{
(context as RabbitMqSendContext).Mandatory = true;
});
如果没有针对交换的绑定,那将设置告诉RabbitMQ抛出异常的标志。