问题描述
services.AddMasstransit(config =>
{
config.AddConsumer<Consumer1>();
config.UsingRabbitMq((ctx,cfg) => {
cfg.Host("amqp://guest:guest@localhost:5672");
cfg.ReceiveEndpoint("firstqueue",c => {
c.ConfigureConsumer<Consumer1>(ctx);
});
});
我需要从一个队列中获取一些请求,然后将它们发布到另一个队列。这就是我连接到其中一个的方式,我尝试直接添加它但我没有成功,因为我不能有 3 个参数
解决方法
发布消息时不需要连接到任何队列。您只需使用 IPublishEndpoint
作为 described in the docs 发布到地址。您不发布到队列,这就是它被称为发布的原因。如果您需要发送,请使用 ISendEndpoint
实例。 Send
方法需要一个地址。
只有在您需要消费消息时,您才连接到队列(和交换)。
对于 MassTransit,如果您在消费者内部发送或发布,建议使用 ConsumeContext
。您可以使用 context.Publish
和 context.GetSendEndpoint
。