如何使用Asp.net Core实现定时任务
在项目中添加以下NuGet包:
- Microsoft.Extensions.Hosting.Abstractions
- Microsoft.Extensions.Hosting
添加定时任务
services.AddHostedService<MyTimer>();
实现IHostedService接口
public class StockAgeTimer : IHostedService, IDisposable
{
bool isStartup = false;
private readonly Timer _timer;
public StockAgeTimer()
{
_timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromHours(1));
}
public Task StartAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
public void Dispose()
{
_timer?.Dispose();
}
private async void DoWork(object state)
{
if (isStartup)
{
using (var client = new HttpClient())
{
try
{
//执行代码
}
catch (Exception ex)
{
}
}
}
else isStartup = true;
}
}

浙公网安备 33010602011771号