首页 > 解决方案 > 如果取消 Masstransit 的 Mediator 请求,则会引发 MessageNotConsumedException

问题描述

我已经设置了一个 Masstransit 的Mediator实例,并且收到如下响应:

try
{
    var client = mediator.CreateRequestClient<GetOrderStatus>();
    var response = await client.GetResponse<OrderStatus>(command, cancellationToken);
    // ...
}
catch (Exception ex)
{    
    Log(ex.ToString());
}

如果cancellationTokenSource.Cancel()在获取响应期间被调用(通过按下 UI 中的取消按钮),我得到

MassTransit.RequestException: 处理 GetOrderStatus 请求时发生异常 ---> MassTransit.MessageNotConsumedException: loopback://localhost/response => 消息未被消费

这是预期的行为吗?我认为它应该抛出TaskCanceledException或者OperationCanceledException我可以正确处理取消。

标签: masstransit

解决方案


推荐阅读