title author date CreateTime categories
ASP.NET Core 开启后台任务
lindexi
2019-08-31 16:55:58 +0800
2019-3-9 15:18:2 +0800
asp aspdotnetcore dotnetcore

本文告诉大家如何通过 Microsoft.Extensions.Hosting.BackgroundService 开启后台任务

实现 BackManagerService 类继承 BackgroundService 抽象类,请看代码

    public class BackManagerService : BackgroundService
{
/// <inheritdoc />
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
return Task.CompletedTask;
}
}

然后打开 Startup.cs 在 ConfigureServices 方法注入

        public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IHostedService, BackManagerService>(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

现在运行 ASP.NET Core 程序就可以看到调用进 ExecuteAsync 方法了

那么如何实现轮询?大概在30秒左右做某个任务?在没有用任何设计的情况,假如这个任务就放在了 BackManagerService 的 Foo 方法,可以通过下面代码调用

        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
Foo();
await Task.Delay(TimeSpan.FromSeconds(30), stoppingToken);
}
}

通过 Task.Delay 的方法延迟指定的时间就可以了,那么更复杂的封装就在大佬们的封装变得更加好用,更多封装请看 Ron 大佬博客

所有代码放在 github

Asp.Net Core 轻松学-基于微服务的后台任务调度管理器 - Ron.Liang - 博客园

在 ASP.NET Core 中使用托管服务实现后台任务

最新文章

  1. 使用ArcGIS JavaScript API 3.18 加载天地图
  2. linux操作系统flash player问题--ubuntu
  3. Android 插件化 动态升级
  4. webbrowser代理c#代码实现
  5. leetcode 组合题
  6. 关于Win8对getElementsByTagName等dom方法兼容性的替代方法
  7. android 25 跨进程启动activity
  8. GDB 的MI接口
  9. 从苹果的appstore谈谈web前端那丝毫的追求
  10. EXCEL Pivot table manipulate
  11. 一键批量ping任意ip段的存活主机
  12. Spring Mvc 用Demo去学习
  13. JSP运行过程 JSP脚本 静态动态包含 jsp指令 jsp内置对象jsp四大作用域 jsp动作元素 EL表达式 JSTL 设计模式 JSP开发模式 EL内置对象
  14. in_flight_pqueue.go
  15. java 静态资源访问详解
  16. Spring常用注解总结(3)
  17. docker进程分析
  18. BugkuCTF SQL注入1
  19. 团队作业 week 14
  20. What Is Apache Hadoop

热门文章

  1. Git.之.安装
  2. layers.py cs231n
  3. PHP7捕获错误异常方法
  4. jquery find 推荐
  5. 洛谷P2051 中国象棋
  6. 安装vagrant&amp;virtualBox
  7. 容器云平台使用体验:DaoCloud
  8. Chef 安装
  9. hdu1532&amp;&amp;poj1273 最大流
  10. 在oracle中操作数据——使用特点的格式插入日期 sql函数的使用——日期函数