さまざまな環境でバックグラウンドサービスとして実行されるasp.netコアでコンソールアプリケーションを作成しています。「Microsoft.Extensions.Hosting」が提供する「BackgroundService」クラスを使用しました。プログラムの起動時に「ExecuteAsync」メソッドを実行したい。
ファイル: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()
public static void Main(string[] args) {
var host = new HostBuilder()
.ConfigureHostConfiguration(configHost => {
})
.ConfigureServices((hostContext, services) => {
services.AddHostedService<IHostedService, RabbitLister>();
})
.UseConsoleLifetime()
.Build();
//run the host
host.Run();
}
ホストされたサービスを開始し、最終的に実行関数を呼び出します
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加