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

gr8qqesn  于 2023-01-20  发布在  RabbitMQ
关注(0)|答案(3)|浏览(204)

我已经安装了“RabbitMQ延迟消息插件”。并且可以在RabbitMQ的插件列表中看到。x1c 0d1x
并使用以下代码通过RabbitMq配置MassTnasit:

var services = new ServiceCollection();

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

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

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

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

pnwntuvh

pnwntuvh1#

对于该版本的RabbitMQ,您需要插件的最新版本available on GitHub
我也将MassTransit Docker图像更新为最新:MassTransit/RabbitMQ

vshtjzan

vshtjzan2#

更新rabbitmq_delayed_message_exchange插件版本从3.8.0到3.8.9解决了我的问题。

ih99xse1

ih99xse13#

我们在使用CloudMQ示例(RabbitMQ托管服务)时也遇到了同样的问题。

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

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

相关问题