我将 MassTransit
与 MediatR
库一起使用。
在控制器中我使用调解器发送消息
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。