【发布时间】:2019-06-01 09:26:06
【问题描述】:
我在空闲时间了解更多关于公共交通的信息。请看下面的代码:
var serviceAddress = new Uri("rabbitmq://localhost/check-order-status");
var client = bus.CreateRequestClient<CheckOrderStatus>(serviceAddress);
var response = await client.GetResponse<OrderStatusResult>(new { OrderId = id});
我从这里拿的:http://masstransit-project.com/MassTransit/usage/request-response.html
GetResponse 向有 x 个消费者的 rabbitmq 扇出交换发送消息。每个消费者都需要向发布者发送回复,但是上面的代码只会收到一个回复然后继续。它如何收到 x 回复?
我已经设法使用 RabbitMQ(没有 Mass Transit)做到这一点,如下所示:https://dotnetcodr.com/2014/05/12/messaging-with-rabbitmq-and-net-c-part-5-headers-and-scattergather/。但是,我无法弄清楚如何通过公共交通来做到这一点。
异步方法可以等待多个回复吗?
更新
使用处理程序似乎可以工作:
sbc.ReceiveEndpoint(host, myMessage.Id.ToString(), ep =>
{
ep.Handler<MyMessage>(context =>
{
testlist.Add(context.Message);
return Console.Out.WriteLineAsync($"Received: {context.Message.Name}");
});
});
我现在可以访问发件人内部的测试列表。
【问题讨论】:
标签: c# async-await rabbitmq masstransit