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.测试结果
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.测试结果
相关文章推荐
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler
- Asp.Net Core 使用Quartz基于界面画接口管理做定时任务
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler定时器
- [转]推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler
- 利用Cache,asp.net 简单实现定时执行任务
- asp.net简单定时任务实现
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler
- ASP.NET Core 使用 Hangfire 定时任务
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler
- ASP.net实现WEB站点的后台定时任务
- Asp.Net Core WebAPI入门整理(二)简单示例
- ASP.NET Core CORS 简单使用
- asp.net 中止Global.asax Application_End事件 避免应用程序池回收 定时任务
- asp.net web 服务器端全局定时执行任务
- ASP.NET Core简单介绍教程(1)
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- asp.net使用Hangfire开发后台定时任务demo
- ASP.NET定时执行某任务
- asp.net core 实现一个简单的仓储