与 MassTransit 的未知交换类型“x-delay-message”RabbitMq

问题描述 投票:0回答:5

我已经安装了“RabbitMQ 延迟消息插件”。可以在 RabbitMq 的插件列表中看到。

并使用 RabbitMq 配置 MassTnasit,使用以下代码:

var services = new ServiceCollection();

        services.AddMassTransit(x =>
        {
            x.AddRabbitMqMessageScheduler();

            x.UsingRabbitMq((context, cfg) => 
            {
                cfg.UseDelayedExchangeMessageScheduler();

                cfg.ConfigureEndpoints(context);
            });
        });

并将“IMessageScheduler”接口注入到我的业务服务中,并调用“IMessageScheduler.ScheduledPublish<>()”。
但我收到此错误:未知的交换类型“x-delay-message”RabbitMq与MassTransit

rabbitmq schedule masstransit
5个回答
1
投票

对于该版本的 RabbitMQ,您需要最新版本的插件,该插件可在 GitHub 上获取。 我也将 MassTransit Docker 映像更新到最新版本:

MassTransit/RabbitMQ


0
投票


0
投票

Error: Error 400 (bad_request): unknown exchange type 'x-delayed-message'

从 CloudMQ 门户检查 RabbitMQ 实例详细信息后,发现插件“delayed-message”未安装,安装插件后解决了该问题。


0
投票

https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.12.0/rabbitmq_delayed_message_exchange-3.12.0.ez

https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.11.1/rabbitmq_delayed_message_exchange-3.11.1.ez


0
投票
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

并且它已经不再工作了。

    

© www.soinside.com 2019 - 2024. All rights reserved.