我正在使用最新版本的MassTransit nuget。我想动态更改服务器用于通信的RabbitMq的配置。连接是通过启动:
services.AddMassTransit(x =>
{
x.UsingRabbitMq((cxt, cfg) =>
{
cfg.ConfigureEndpoints(cxt);
cfg.Host(address, port, virtualHost, h =>
{
h.Username(user);
h.Password(password);
});
});
});
如果出于某种原因,用户想要连接到另一个RabbitMq,而不需要MultiBus的上下文,只是停止实际的总线并启动一个新的总线,我该怎么做?我该如何在RabbitMq界面中查看总线何时启动或何时被取消(停止)?
我尝试过使用数据库中保存的信息停止实际的总线连接,并使用用户输入的信息启动新的总线,但我认为这是不正确的。
actualBus.stopAsync();
newBus.startAsync();
我想找到一种方法来停止我在启动中启动的总线,并在应用程序中的某个点创建一个新的总线,而不会出现问题。
1条答案
按热度按时间cygmwpex1#
总线配置一旦完成,就没有更改总线配置的规定。您可以停止和启动它,但只能停止和启动具有相同配置的同一总线。
您可以使用容器中注册的
IBusObserver
来观察总线启动/停止事件。