MassTransit V8 中是否需要 start/stop IBus 的 IHostedService

Is IHostedService for start/stop IBus needed in MassTransit V8

我在 ASP.Net Core (.Net 6) 微服务​​项目中使用 MassTransit 和 RabbitMQ。现在我已经升级到 MassTransit 版本 8。目前我正在使用 IHostedService 来启动和停止总线:

public class BusService : IHostedService
{
    private readonly IBusControl _busCtrl;

    public BusService( IBusControl busCtrl )
    {
        _busCtrl = busCtrl ?? throw new ArgumentNullException( nameof( busCtrl ) );
    }

    public Task StartAsync( CancellationToken cancellationToken )
        => _busCtrl.StartAsync( cancellationToken );

    public Task StopAsync( CancellationToken cancellationToken )
        => _busCtrl.StopAsync( cancellationToken );
}

服务注册:

services.AddSingleton<IHostedService, BusService>();

我现在读到“MassTransit 会自动为 MassTransit 添加一个 IHostedService”。那么这是否意味着我不再需要 start/stop 公交车这样的服务了?

正确,您不再需要添加自己的托管服务。调用 AddMassTransit 会将所有必需的服务和健康检查添加到服务集合中。

上述服务是重复的,不应与 MassTransit v8 一起使用。