华域联盟 .Net .NET Core3.0创建Worker Services的实现

.NET Core3.0创建Worker Services的实现

.NET Core3.0创建Worker Services的实现
 更新时间:2020年10月26日 11:39:33   作者:李明成  

这篇文章主要介绍了.NET Core3.0创建Worker Services的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

.NET CORE 3.0新增了Worker Services的新项目模板,可以编写长时间运行的后台服务,并且能轻松的部署成windows服务或linux守护程序。如果安装的vs2019是中文版本,Worker Services变成了辅助角色服务。Worker Services 咱也不知道怎么翻译成了这个名称,咱也不敢乱翻译,下文就保持原名称。。。,本文将会演示如何创建一个Worker Services项目,并且部署为windows服务或linux守护程序运行;
开始创建worker service 项目
创建新项目——》选择辅助角色服务

项目创建成功之后,您会看到创建了两个类:Program和Worker。
Program.cs

public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});

Program类跟ASP.NET Core Web应用程序非常类似,不同之处没有了startup类,并且把worker服务添加到DI container中。

Worker.cs

public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;

public Worker(ILogger<Worker> logger)
{
_logger = logger;
}

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
await Task.Delay(1000, stoppingToken);
}
}
}

worker只是一个简单的类,它继承自BackgroundService,而后者又实现IHostedService接口。
默认的worker演示,没隔1秒,循环打印运行的时间。

部署为Windows服务运行1.在项目中添加nuget包:Microsoft.Extensions.Hosting.WindowsServices

2.然后在program.cs内部,将UseWindowsService()添加到CreateHostBuilder

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});

3.执行一下命令发布项目

dotnet publish -c Release -o C:\\WorkerPub

4.然后使用sc.exe工具来管理服务,输入一下命令创建为windows服务

sc.exe create DemoWorkService binPath=C:\\WorkerPub\\WorkerService1.exe

查看服务状态使用一下命令

sc.exe query DemoWorkService

启动命令

sc.exe start DemoWorkService

在服务列表查看,DemoWorkService已安装成功

停用 、删除命令

sc.exe stop DemoWorkService
sc.exe delete DemoWorkService

部署作为Linux守护程序运行
部署linux守护程序也是很方便的执行一下两个步骤即可:
添加Microsoft.Extensions.Hosting.Systemd NuGet包到项目中,并告诉你的新Worker,其生命周期由systemd管理!
将UseSystemd()添加到主机构建器中。

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSystemd()
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});

到此这篇关于.NET Core3.0创建Worker Services的实现的文章就介绍到这了,更多相关.NET Core3.0创建Worker Services内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!

您可能感兴趣的文章:详解.NET Core中的Worker Service.NET 中Worker Service的使用入门

.NET
Core3.0
Worker
Services

相关文章
.net jMail邮件发送(含抄送、密送、多发、日志记录)实例代码这篇文章主要介绍了.net jMail邮件发送(含抄送、密送、多发、日志记录)实例代码,有需要的朋友可以参考一下 2013-11-11
asp.net采集网页图片的具体方法采集网页上图片的主要关键是在怎么解析出页面代码里那些img标签的src属性 2013-06-06
asp.net中MD5 16位和32位加密函数asp.net中MD5 16位和32位加密函数... 2007-03-03
Asp.Net Core2.1前后使用HttpClient的两种方式这篇文章主要给大家介绍了关于Asp.Net Core2.1前后HttpClient的使用方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 2019-03-03
ASP.NET Core使用HostingStartup增强启动操作方法详解这篇文章主要介绍了ASP.NET Core使用HostingStartup增强启动操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 2020-11-11
asp.net 提高网站速度及如何利用缓存ASP.NET提供三种主要形式的缓存:页面级输出缓存、用户控件级输出缓存(或称为片段缓存)和缓存API。 2010-01-01
ASP.NET五步打包下载Zip文件实例本篇文章主要介绍了ASP.NET五步打包下载Zip文件实例,现在分享给大家,也给大家做个参考。有需要的小伙伴可以参考下。
2016-11-11
win2003服务器asp.net权限设置问题及解决方法ASP.NET相对于ASP,设置权限方面有点不同,有一点儿设置错了都运行不到。在网上搜索到的都是很垃圾的答案,没有一个用得到的,下面是我自己设置并从中遇到的问题摸索后得到的经验,给大家分享。 2011-08-08
浅谈ASP.NET MVC 防止跨站请求伪造(CSRF)攻击的实现方法下面小编就为大家分享一篇浅谈ASP.NET MVC 防止跨站请求伪造(CSRF)攻击的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 2018-01-01
asp.net 事件与委托分析delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类。与其它的类不同,delegate类能够拥有一个签名(signature),并且它只能持有与它的签名相匹配的方法的引用。 2009-02-02

最新评论

本文由 华域联盟 原创撰写:华域联盟 » .NET Core3.0创建Worker Services的实现

转载请保留出处和原文链接:https://www.cnhackhy.com/5041.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者:

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部