ASP.NET Core 开启后台任务
2023-09-27 14:28:54 时间
本文告诉大家如何通过 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 - 博客园
我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新
如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
相关文章
- ASP.NET Core Web Api之JWT刷新Token(三)
- ASP.NET Core Web Api之JWT(一)
- 你所不知道的ASP.NET Core MVC/WebApi基础系列(一)
- ASP.NET Core MVC/WebAPi如何构建路由?
- 学习ASP.NET Core Blazor编程系列二十四——登录(3)
- 学习ASP.NET Core Razor 编程系列九——增加查询功能
- ASP.NET 5 DNX SDK删除旧版本
- ASP.NET Core Dependency Injection Best Practices, Tips & Tricks
- Implementing Google Analytics on an ASP.NET website
- How to return View with QueryString in ASP.NET MVC 2?
- Cookie replay attacks in ASP.NET when using forms authentication
- ASP.NET Web Optimization Framework
- Getting started with ASP.NET Core MVC and Visual Studio
- js基础 js自执行函数、调用递归函数、圆括号运算符、函数声明的提升 js 布尔值 ASP.NET MVC中设置跨域
- C# 嵌入dll 动软代码生成器基础使用 系统缓存全解析 .NET开发中的事务处理大比拼 C#之数据类型学习 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持 基于EF Core的Code First模式的DotNetCore快速开发框架 【懒人有道】在asp.net core中实现程序集注入
- ASP.NET中的配置文件
- Asp.NET Core 限流控制-AspNetCoreRateLimit
- ASP.NET MVC请求处理管道生命周期的19个关键环节(7-12)
- ASP.NET Core 2.0 Web API项目升级到ASP.NET Core 3.0概要笔记
- ASP.NET Core中Ocelot的使用:基于Spring Cloud Netflix Eureka的动态路由
- ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(二)
- 欢迎阅读daxnet的新博客:一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
- ASP.NET Core 2.0 使用支付宝PC网站支付
- 【推荐】【给中高级开发者】构建高性能ASP.NET应用的几点建议
- 一、Linux平台部署ASP.NET、ASP.NET CORE、PHP
- 三、ASP.NET Core 部署Linux
- vs 2019 .net core 3.1 asp.net mvc发布
- ASP.NET Aries JSAPI 文档说明:AR.Utility
- 在asp.net core中使用skywalking(及问题)
- 实验一 ASP.NET应用环境配置 总结
- uniapp跨域调用ASP.NET Core Web API