Я реализовал BackgroundService в приложении ASP.NET Core 2.1:
public class MyBackgroundService : BackgroundService
{
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
while (true)
{
await DoSomethingAsync();
await Task.Delay(10 * 1000);
}
return Task.CompletedTask;
}
}
Я зарегистрировал его в своем методе ConfigureServices()
:
services.AddSingleton<MyBackgroundService>();
Я в настоящее время (неохотно) запустив его, вызвав (и не ожидая) метод StartAsync()
из метода Configure()
:
app.ApplicationServices.GetService<SummaryCache>().StartAsync(new CancellationToken());
Каков наилучший метод для запуска службы с длительным запуском?