使用MassTransit在Mediator ConsumerContext范围内发布/发送



在我的ASP中。NET核心控制器,我使用IMediator发送了一个命令。发送

await mediator.Send(new SubmitOrder());

SubmitOrder的消费者看起来像这个

public class SubmitOrderConsumer : IConsumer<SubmitOrder>
{
public async Task Consume( ConsumeContext<SubmitOrder> context )
{
var sendEndpoint = await context.GetSendEndpoint( new Uri( "rabbitmq://localhost/notification-service" ) );
await sendEndpoint.Send( new NotifyOrderSubmitted() );
}
}

向传输发送消息会导致错误消息

MassTransit.MessageNotConsumedException: 'loopback://localhost/mediator => The message was not consumed'

发布不会在RabbitMQ 上添加消息

有没有一种方法可以用ConsumeContext来实现这一点,而不是注入IBusControlIBus,因为我希望保留消息线程的上下文

在Mediator中使用消息时,接口都是与中介相关的。要将轨道从中介器跳到总线,您需要通过依赖项注入将总线(通过IBus(引用到消费者。

相关内容

最新更新