托管服务
有些工作是需要后台运行的,比如每天凌晨备份数据库。ASP.NET Core提供了托管服务来供我们编写后台代码。
托管服务只需要实现IHostedService即可,一般在开发时编写继承自BackgroundService的类,该类不进实现了IHostedService接口,并且处理了任务取消等逻辑,我们只需实现BackgroundService中定义的ExecuteAsync方法即可。BackgroundService类实现了IDisposable接口,我们可以把任务结束后的清理代码写到Dispose方法中。
托管服务案例1:
1:编写一个类继承BackgroundService类,然后实现ExecuteAsync方法即可
public class DemoBgService : BackgroundService
{
private ILogger<DemoBgService> logger;
public DemoBgService(ILogger<DemoBgService> logger)
{
this.logger = logger;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await Task.Delay(5000);
string s = await File.ReadAllTextAsync("d:/1.txt");
await Task.Delay(20000);
logger.LogInformation(s);
}
}