您的位置:首页 > 编程语言 > ASP

asp.net core 简单定时任务

2018-08-01 11:28 543 查看
基于后台服务类 BackgroundService 实现,类所在程序集为Microsoft.Extensions.Hosting

1.实现BackgroundService方法ExecuteAsync

using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
using System.Threading;
using System.Threading.Tasks;

namespace NetCoreMVC.Cfg
{
/// <summary>
/// 简单的定时任务执行
/// </summary>
public class TimedExecutService : BackgroundService
{
public ILogger _logger;
public TimedExecutService(ILogger<TimedExecutService> logger)
{
this._logger = logger;
}

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
try
{
_logger.LogInformation(DateTime.Now.ToString() + "BackgroundService:启动");

while (!stoppingToken.IsCancellationRequested)
{
await Task.Delay(5000, stoppingToken); //启动后5秒执行一次 (用于测试)
_logger.LogInformation(DateTime.Now.ToString()+" 执行逻辑");
}

_logger.LogInformation(DateTime.Now.ToString() + "BackgroundService:停止");
}
catch (Exception ex)
{
if (!stoppingToken.IsCancellationRequested)
{
_logger.LogInformation(DateTime.Now.ToString() + "BackgroundService:异常" + ex.Message + ex.StackTrace);
}
else
{
_logger.LogInformation(DateTime.Now.ToString() + "BackgroundService:停止");
}
}
}
}
}

2.注册服务

public void ConfigureServices(IServiceCollection services)
{

//注册简单的定时任务执行
services.AddSingleton<Microsoft.Extensions.Hosting.IHostedService, TimedExecutService>();

//注册mvc服务
services.AddMvc();



3.测试结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ASP.NET
相关文章推荐