masstransit - 如果取消 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
我可以正确处理取消。
解决方案
推荐阅读
- javascript - 单击表格行时记录 JSON 字段
- laravel - 如何使用 laravel eloquent 删除和更新关系表上的数据?
- git - 从本地仓库直接推送到新机器
- spring - 先前配置的环境中的 R2dbc
- vim - 如何在 Vim 中打开文件
- r - 为数据创建 5 秒的间隔并将它们分组
- c# - 如何在后台启动服务(应用程序未运行时)?
- javascript - 为什么我的 JavaScript 构造函数返回默认属性值而不是修改后的值?
- zend-framework2 - php单元测试用例总是失败
- sql - sql like operator %string% 在很少的记录上花费太多时间