返回顶部
首页 > 资讯 > 精选 >.NET Core如何使用Worker Service创建服务
  • 852
分享到

.NET Core如何使用Worker Service创建服务

2023-06-29 04:06:27 852人浏览 独家记忆
摘要

这篇文章主要介绍了.net Core如何使用Worker Service创建服务,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求来源在几年前, 做的项目

这篇文章主要介绍了.net Core如何使用Worker Service创建服务,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

需求来源

在几年前, 做的项目是依赖windows服务来支撑一些业务, 目前已经把技术栈全部由.NET Framework 升级至 .net core x。

旧得需求大部分是,接入一些第三方得硬件设备, 例如PLC、串口读卡器、tcp阅读器、各种硬件模块。
为了能够让任何开发语言接入无需重新实现, 所以使用Windows服务添加支持各类硬件api、对外使用MQTT.NET来进行协议开发。

版本更新

考虑到目前软件的更新,其中包括安装文件、SDK都是基于.Net Core, 所以使用Worker Service来创建服务, 该服务支持在Windows与linux运行。

创建WorkerService

创建完成后, 整个默认项目包含Program以及一个Worker示例, 配置的模式与ASP.net core相同。

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

可以看到在配置服务中,AddHostedService添加了一个Worker, 类型约束IHostedService

关于Worker类的实现

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);            }        }    }
  • ExecuteAsync
    在服务启动时,会执行该方法,每秒钟输入当前时间

查看父类BackgroundService的实现,可以看到有支持重写的方法。

        public virtual void Dispose();        public virtual Task StartAsync(CancellationToken cancellationToken);        public virtual Task StopAsync(CancellationToken cancellationToken);

意思就是,我们可以在启动服务时候触发的逻辑以及暂停服务触发的逻辑都可以自行编写。

安装服务

发布之后,即可使用sc.exe 来安装/启动/暂停/卸载服务等。

  • 安装服务
    sc.exe create MyService binPath=C:\User\WorkerService.exe

  • 查询服务状态
    sc.exe query MyService

  • 启动服务
    sc.exe start MyService

  • 暂停服务
    sc.exe stop MyService

  • 卸载服务
    sc.exe delete MyService

感谢你能够认真阅读完这篇文章,希望小编分享的“.NET Core如何使用Worker Service创建服务”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: .NET Core如何使用Worker Service创建服务

本文链接: https://lsjlt.com/news/322583.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • .NET Core如何使用Worker Service创建服务
    这篇文章主要介绍了.NET Core如何使用Worker Service创建服务,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求来源在几年前, 做的项目...
    99+
    2023-06-29
  • .NET Core使用Worker Service创建服务
    需求来源 在几年前, 做的项目是依赖Windows服务来支撑一些业务, 目前已经把技术栈全部由.NET Framework 升级至 .NET Core x。 旧得需求大部分是,接入一...
    99+
    2024-04-02
  • 如何使用.NET Core创建exe应用程序
    今天小编给大家分享一下如何使用.NET Core创建exe应用程序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。....
    99+
    2023-07-02
  • ASP.NET Core中如何使用EF创建模型
    本文小编为大家详细介绍“ASP.NET Core中如何使用EF创建模型”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET Core中如何使用EF创建模型”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-29
  • .NET Core如何使用APB vNext框架
    这篇文章给大家分享的是有关.NET Core如何使用APB vNext框架的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。快速入门案例.NET Core 控制台应用1. 安装 ABP 框架核心依...
    99+
    2023-06-29
  • 如何使用Phalanger创建组合.NET和PHP
    本篇文章为大家展示了如何使用Phalanger创建组合.NET和PHP,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Phalanger 是一种 PHP 语言编译器,也是针对 .NET 的 PHP 运...
    99+
    2023-06-17
  • .NET Core使用Eureka实现服务注册
    首先先安装nuget组件: Steeltoe.Discovery.ClientCore 然后在ConfigureServices中进行注入 services.AddDiscovery...
    99+
    2024-04-02
  • Linux下如何使用Docker托管.NET Core
    这篇文章主要介绍了Linux下如何使用Docker托管.NET Core,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。.NET Core是适用于 Windows、Linux ...
    99+
    2023-06-27
  • .Net Core服务治理Consul使用服务发现
    先思考一些问题:它是做什么的、以及怎么使用它。带着这些问题往下走。 consul是做什么的 consul用于微服务下的服务治理。服务治理是什么?它包含但不限于:服务发现、服务配置、健...
    99+
    2024-04-02
  • 如何在NET Core中获取CPU使用率
    这篇文章主要介绍“如何在NET Core中获取CPU使用率”,在日常操作中,相信很多人在如何在NET Core中获取CPU使用率问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在NET&...
    99+
    2023-06-26
  • 如何使用 Shell 脚本执行 .NET Core 应用
    在本文中,我将研究如何创建 shell 脚本来运行简单的 .NET Core 应用程序。之所以有这个研究议题,是因为本站(pzy.io)数据库需要每天定时备份,并在备份完成后,将备份文件上传远程云存储,保证了数据安全。由...
    99+
    2022-06-04
    shell 脚本 shell 脚本执行应用 shell 脚本执行 .net core应用
  • .NET Core中如何实现或使用对象池?
    目录前言池化策略 对象池的使用 指定对象池容量 在 ASP.NET Core 中使用 总结 前言 池这个概念大家都很熟悉,比如我们经常听到数据库连接池和线程池。它是一种基于使用预先分...
    99+
    2024-04-02
  • .Net Core微服务rpc框架GRPC通信如何运用
    本文小编为大家详细介绍“.Net Core微服务rpc框架GRPC通信如何运用”,内容详细,步骤清晰,细节处理妥当,希望这篇“.Net Core微服务rpc框架GRPC通信如何运用”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-06-26
  • dos中net如何创建管理员用户
    这篇文章给大家分享的是有关dos中net如何创建管理员用户的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、dos命令中net命令常用创建用户下面这段代码是用来创建一个管理员用户 代码:net user...
    99+
    2023-06-08
  • 如何使用Docker创建FTP服务器
    今天小编给大家分享一下如何使用Docker创建FTP服务器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一.创建命令如下do...
    99+
    2023-06-29
  • 如何使用golang创建WebSocket服务器
    如何使用golang创建WebSocket服务器WebSocket是一种在客户端和服务器之间实现双向通信的协议。它允许我们通过一个持久的连接在客户端和服务器之间传输数据。在这篇文章中,我将向你介绍如何使用golang创建一个简单的WebSo...
    99+
    2023-12-17
    websocket Golang (Go) 服务器 (Server)
  • .NET Core中RabbitMQ使用死信队列如何实现
    本篇内容介绍了“.NET Core中RabbitMQ使用死信队列如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在.NET ...
    99+
    2023-07-05
  • 如何使用golang中的net/http/httptest.NewUnstartedServer函数创建未启动的HTTP服务器
    如何使用golang中的net/http/httptest.NewUnstartedServer函数创建未启动的HTTP服务器概述:在Golang中,我们可以使用net/http包来构建和处理HTTP服务器。而在进行单元测试时,有时需要创建...
    99+
    2023-11-18
    Golang net/http httptestNewUnstartedServer
  • .Net Core中如何使用SignalR实现斗地主游戏
    本篇内容主要讲解“.Net Core中如何使用SignalR实现斗地主游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“.Net Core中如何使用SignalR实现斗地主游...
    99+
    2023-06-26
  • 如何使用VS2022在ASP.NET Core中构建轻量级服务
    小编给大家分享一下如何使用VS2022在ASP.NET Core中构建轻量级服务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在 ASP.NET Cor...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作