我正在创建一个ASP.NET Core控制台应用程序,该程序将在不同环境下作为后台服务运行。我使用了Microsoft.Extensions.Hosting提供的"BackgroundService"类。当我的程序启动时,我想要运行它的"ExecuteAsync"方法。
文件: Program.cs
文件: Program.cs
public static void Main(string[] args)
{
var host = new HostBuilder()
.ConfigureHostConfiguration(configHost =>
{
})
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<IHostedService,RabbitLister>();
})
.UseConsoleLifetime()
.Build();
}
文件:RabbitLister.cs
public class RabbitLister : BackgroundService
{
private readonly IEventBus _eventBus;
private readonly ILogger<RabbitLister> _logger;
public RabbitLister()
{
}
public RabbitLister(IEventBus eventBus, ILogger<RabbitLister> logger)
{
_eventBus = eventBus;
_logger = logger;
}
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
_eventBus.SubscribeDynamic("myQueue");
return Task.CompletedTask;
}
}
host.Run()
函数将启动托管服务并最终调用执行函数。 - Nkosi