我已经安装了“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
Error: Error 400 (bad_request): unknown exchange type 'x-delayed-message'
从 CloudMQ 门户检查 RabbitMQ 实例详细信息后,发现插件“delayed-message”未安装,安装插件后解决了该问题。
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
并且它已经不再工作了。