确保 MassTransit 总线已正确启动并配置了所有定义的消费者

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

我在 .NET REST API 中使用 MassTransit 8.0.15 和 RabbitMQ。在启动过程中,我配置了路由表中使用的多个使用者和活动。有时,队列(用于活动已完成的消息)没有绑定到它的消费者。当我重新启动应用程序时,它会正确绑定。这似乎是一个超时问题或类似的问题。问题是我的应用程序启动了,但某些部分可能没有正确配置,导致我错过消息或阻止我的路由滑动完成。

我不确定为什么会发生这种情况,但我还有另一个问题。 MassTransit 中有没有办法验证启动是否成功,确保一切都按预期配置?或者我应该通过向每个队列发送消息来检查它们是否响应来“手动”测试它?

另一个问题与 UseMessageRetry 方法有关。我可以在全球范围内应用它以确保每条消息都有重试策略吗?我特别想问它是否也可以涵盖配置队列、交换、活动等的所有启动 TCP 连接

rabbitmq timeout masstransit routing-slip
1个回答
0
投票

您可以配置主机选项,以便 .NET 通用主机等待,直到总线成功启动,然后再继续 ASP.NET 启动。默认情况下,这是

false

services.AddOptions<MassTransitHostOptions>()
    .Configure(options =>
    {
        options.WaitUntilStarted = true;
        options.StartTimeout = TimeSpan.FromSeconds(30);
    });
© www.soinside.com 2019 - 2024. All rights reserved.