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 中使用托管服务实现后台任务

2019-8-31-ASP.NET-Core-开启后台任务的更多相关文章

  1. ASP.NET Core 开启后台任务

    本文告诉大家如何通过 Microsoft.Extensions.Hosting.BackgroundService 开启后台任务 实现 BackManagerService 类继承 Backgroun ...

  2. ASP.NET Core开发-后台任务利器Hangfire使用

    ASP.NET Core开发系列之后台任务利器Hangfire 使用. Hangfire 是一款强大的.NET开源后台任务利器,无需Windows服务/任务计划程序. 可以使用于ASP.NET 应用也 ...

  3. asp.net Core开启全新的时代,用视频来告诉你,学习就是这么SO easy。

    https://channel9.msdn.com/Blogs/NET-Core/What-is-NET-Core 系统大家多发布一些视频的资料,学习起来更方便!我看到很多人发布的博客里面有的时候对于 ...

  4. ASP.NET Core 2.2 基础知识(九) 使用托管服务实现后台任务

    在 ASP.NET Core 中,后台任务作为托管服务实现.托管服务是一个类,而且必须实现 IHostedService 接口,该接口定义了两个方法: StartAsync(CancellationT ...

  5. ASP.NET Core搭建多层网站架构【9.2-使用Castle.Core实现动态代理拦截器】

    2020/01/31, ASP.NET Core 3.1, VS2019, Autofac.Extras.DynamicProxy 4.5.0, Castle.Core.AsyncIntercepto ...

  6. ASP.NET Core搭建多层网站架构【10-使用JWT进行授权验证】

    2020/01/31, ASP.NET Core 3.1, VS2019, Microsoft.AspNetCore.Authentication.JwtBearer 3.1.1 摘要:基于ASP.N ...

  7. ASP.NET Core 使用 Hangfire 定时任务

    定时任务组件,除了 Hangfire 外,还有一个 Quarz.NET,不过 Hangfire .NET Core 支持的会更好些. ASP.NET Core 使用 Hangfire 很简单,首先,N ...

  8. [译]基于ASP.NET Core 3.0的ABP v0.21已发布

    基于ASP.NET Core 3.0的ABP v0.21已发布 在微软发布仅仅一个小时后, 基于ASP.NET Core 3.0的ABP v0.21也紧跟着发布了. v0.21没有新功能.它只是升级到 ...

  9. Asp.Net Core中使用NLog记录日志

    2019/10/28, Asp.Net Core 3.0, NLog 4.6.7, NLog.Web.AspNetCore 4.9.0 摘要:NLog在asp.net网站中的使用,NLog日志写入数据 ...

  10. ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

    一.创建项目 本篇文章介绍如何将一个ASP.NET Core Web程序部署到Windows系统上.这里以ASP.NET Core WebApi为例进行讲解.首先创建一个ASP.NET Core We ...

随机推荐

  1. 2019-2-16-WPF-封装-dotnet-remoting-调用其他进程

    title author date CreateTime categories WPF 封装 dotnet remoting 调用其他进程 lindexi 2019-02-16 09:40:26 +0 ...

  2. em grid control网格控制

    网格控制 必须管理许多的数据库.应用服务器.web服务器和其他构件的企业可以采用em grid control Em grid control是一个基于web的用户界面,它与oracle企业内所有构件 ...

  3. bootStrap表单验证插件的使用

    bootStrapValidator插件的使用 1.插件的下载和引用 首先要引入bootstrapValidator插件.链接的地址:https://www.bootcdn.cn/jquery.boo ...

  4. fedora下eclipse安装tomcat插件

    首先下载tomcat插件: http://www.eclipsetotale.com/tomcatPlugin.html,下载最新的3.3版本: 由于我的eclipse是通过yum自动安装的,因此ec ...

  5. Directx11教程(34) 纹理映射(4)

    原文:Directx11教程(34) 纹理映射(4)     本篇教程中,我们尝试在myTutorialD3D_27中改变采样状态描述符的各种设置,看纹理贴图的方式有什么变化. 原始的代码是:     ...

  6. (一)流--IO框架

    介绍: IO(Input/Output)是计算机输入/输出的接口.java的核心库java.io提供了全方面的IO接口,包括:文件系统的操作,文件读写,标准设备输出等等 File  文件和目录类 In ...

  7. Android实战:手把手实现“捧腹网”APP(三)-----UI实现,逻辑实现

    Android实战:手把手实现"捧腹网"APP(一)-–捧腹网网页分析.数据获取 Android实战:手把手实现"捧腹网"APP(二)-–捧腹APP原型设计.实 ...

  8. Python学习之路4☞条件和循环

    一.if语句 1.1 功能 计算机又被称作电脑,意指计算机可以像人脑一样,根据周围环境条件(即expession)的变化做出不同的反应(即执行代码) if语句就是来控制计算机实现这一功能 1.2 语法 ...

  9. python 六种典型的异常

  10. Android中Scroller类的分析

    今天看了一下项目中用到的ViewFlow控件,想弄明白其工作原理.从头开始分析,卡在"滚动"这儿了. 做android也快两年了,连最基本的滚动都不熟悉,真是惭愧...遂网上找资料 ...