背景介紹:
項目環境為ASP.NET Core 2.1.2。
需要在項目啟動時運行一個定時任務,在后台每隔一定時間執行任務。
實現方法:
1、寫一個任務服務類繼承BackgroundService
public class APIDataService : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
try
{
//需要執行的任務
}
catch (Exception ex)
{
LogHelper.Error(ex.Message);
}
await Task.Delay(1000, stoppingToken);//等待1秒
}
}
}
2、在Startup.cs中注入
public void ConfigureServices(IServiceCollection services)
{
......
services.AddSingleton<Microsoft.Extensions.Hosting.IHostedService, APIDataService>();
}