.net-core - 何时使用 MassTransit IRequestClient 以及何时使用 IBus.Send

我将 MassTransitMediatR 库一起使用。

在控制器中我使用调解器发送消息

List<Car> cars = await _mediator.Send(new GetCarDataQuery());

GetCarDataQuery 将在 GetCarDataQueryHandler 中结束,因此它将返回汽车对象列表。

一切都很好,但是如果我例如摆脱 MediatR 库,那么就相当于发送上述消息。像 _bus.Send(new MyCommand()) 一样使用 MassTransit IBus 还是使用 IRequestClient

据我了解 IRequestClient 将是同步调用,而 _bus 将是异步调用并将消息放入队列?由此我认为我需要使用 _bus.Send<MyCommand>() 但我不确定如何接收消费者的回复?

回答1

如果您需要响应,您应该使用 IRequestClient<T>

如果您需要触发并忘记消息,请使用 Publish

https://masstransit-project.com/usage/mediator.html 已记录在案,您可以观看各种 https://youtu.be/97PXJIrGnes

相似文章