首页 > 解决方案 > Masstransit 主机连接失败

问题描述

我使用该MassTransit.AspNetCore软件包集成masstransitasp.net core. 所以我的Startup.cs课堂上有以下代码:

IBusControl CreateBus(IServiceProvider serviceProvider)
        {
            return Bus.Factory.CreateUsingRabbitMq(cfg =>
            {
                cfg.Host(Configuration["rabbitMqUrl"], h =>
                {
                    h.Username(Configuration["rabbitMqUsername"]);
                    h.Password(Configuration["rabbitMqPassword"]);
                });
            });
        }

        services.AddMassTransit(CreateBus);

问题是如果rabbit mq 不可用,我的应用程序会尝试重新连接到主机。有没有办法配置尝试次数 - 假设在 3 次尝试后停止尝试重新连接,以便我的应用程序可以运行?

标签: masstransit

解决方案


bus.StartAsync()方法接受 a CancellationToken,可用于取消启动总线。有一个接受 a 的重载,TimeSpan它可用于指定连接的超时时间。

托管服务也接受 cancelToken,但我不确定 ASP.NET Core 如何确定传递给它的内容以及如何设置超时。


推荐阅读