.Net core Worker Service 扩展库,目的为更易控制每一个worker 的运行。

提供根据配置文件对每一个Worker的停止、启动和自动解析注册Worker。

获取配置的方式不限于 使用配置文件,也可以使用数据库,也可以使用 [WeTools.SqlSugarDBConfigProvider](NuGet Gallery | WeTools.SqlSugarDBConfigProvider 1.0.0) nuget包,读取数据库配置。

未来计划 增加一个轻量级的服务配置中心,更方便的管理服务。

获取地址:NuGet Gallery | WeTools.WorkerService 1.0.1

Install-Package WeTools.WorkerService -Version 1.0.1

方式1,worker 类型通过配置文件解析

  1. 在配置文件添加节点
"WeTools": {
"Dir": "/", //worker 所在文件夹, 根目录为 / ;
"Workers": [
{
"Name": "Worker2",
"WorkerName": "Worker2",//具体的实现类名
"Enable": true //此节点控制worker 的运行
},
{
"Name": "Worker",
"WorkerName": "Worker",
"Enable": true
} ]
}

  

  1. 新建worker,并继承WeToolBackgroundService。

  2. 在Program类 ConfigureServices 里注册服务

services.AddServiceOptions(hostContext);
services.UseWorkers();

  

方式2 worker 通过特性解析

  1. 在配置文件添加节点
"WeTools": {
"Worker": {
"name":"testworker",//可选,默认为特性输入的名称
"workername":"",//可选,默认为特性解析的worker类名
"Enable": true
},
"Worker2":{
"Enable": true
}
}

  

或者 自定义配置节点 
"myconfig":
{
"DemoWorker":
{
"name": "adf123",
"Enable": true
}
}

  


或者 根节点下直接添加
"DemoWorker":
{
"Enable": true
},
"DemoWorker2":
{
"Enable": true
},

  

 
  1. 新建worker,继承WeToolBackgroundService 并在worker类添加特性

    	[Worker("DemoWorker")]
    public class TestWorker : WeToolBackgroundService
    {
    }

      

3.在Program类 ConfigureServices 里注册服务

参数对应 1 中的配置 选择不同的方法。

这里不需要调用 AddServiceOptions 方法。

services.UseWorker(hostContext.Configuration);
services.UseWorker(hostContext);
services.UseWorker(hostContext.Configuration.GetSection("myconfig"));

  

现在即可启动程序。

.Net core Worker Service 扩展库的更多相关文章

  1. .NET 中的 Worker Service 入门介绍

    翻译自 Steve Gordon 2020年3月30日的文章 <WHAT ARE .NET WORKER SERVICES?> [1] 随着 .NET Core 3.0 的发布,ASP.N ...

  2. 在 ASP.NET Core和Worker Service中使用Quartz.Net

    现在有了一个官方包Quartz.Extensions.Hosting实现使用Quartz.Net运行后台任务,所以把Quartz.Net添加到ASP.NET Core或Worker Service要简 ...

  3. .NET Core中的Worker Service

    当你想到ASP.NET Core时,可能会想到Web应用程序后端代码,包括MVC和WebAPI.MVC视图和Razor页面还允许使用后端代码生成带有HTML元素的前端UI.全新的Blazor更进一步, ...

  4. 基于.Net Core 5.0 Worker Service 的 Quart 服务

    前言 看过我之前博客的人应该都知道,我负责了相当久的部门数据同步相关的工作.其中的艰辛不赘述了. 随着需求的越来越复杂,最近windows的计划任务已经越发的不能满足我了,而且计划任务毕竟太弱智,总是 ...

  5. ServiceStack.Redis 的 ASP.NET Core 扩展库

    给大家安利一款 ServiceStack.Redis 的 ASP.NET Core 扩展库,它是基于 ServiceStack.Redis.Core 开发的. 简单易用,开源免费,使用ASP.NET ...

  6. Log4net 的 ASP.NET Core 扩展库

    给大家安利一款 log4net 的 ASP.NET Core 扩展库,它是基于 log4net 开发的. 简单易用,开源免费,使用ASP.NET Core自身提供的DI容器来实现服务的注册和消费.直接 ...

  7. ASP.NET Core扩展库

    亲爱的.Neter们,在我们日复一日的编码过程中是不是会遇到一些让人烦恼的事情: 日志配置太过复杂,各种模板.参数也搞不清楚,每次都要去查看日志库的文档,还需要复制粘贴一些重复代码,好无赖 当需要类型 ...

  8. ASP.NET Core扩展库之日志

        上一篇我们对Xfrogcn.AspNetCore.Extensions扩展库功能进行了简单的介绍,从这一篇文章开始,我将逐步介绍扩展库中的核心功能.     日志作为非业务的通用领域基础功能, ...

  9. ASP.NET Core扩展库之Http通用扩展

    本文将介绍Xfrogcn.AspNetCore.Extensions扩展库对于Http相关的其他功能扩展,这些功能旨在处理一些常见需求, 包括请求缓冲.请求头传递.请求头日志范围.针对HttpClie ...

随机推荐

  1. SqlServer视图的创建与使用

    SqlServer系列之视图的创建与使用: 什么是视图? 视图的概述 在数据查询中,可以看到数据表设计过程中,考虑到数据的冗余度低.数据一致性等问题,通常对数据表的设计要满足范式的要求,因此也会造成一 ...

  2. 移动端调试vConsole

    当我们在进行移动端开发的时候,经常会出现在pc显示正常,在移动端却各种异常的情况.这时候我们在手机上又看不到error log. 所以我们就需要vConsole这样一个移动端开发神器. 那具体要怎么使 ...

  3. 用DeBug的方式,带你掌握HBase文件在Snapshot的各种变化

    摘要:掌握Snapshot可以帮助我们很好的完成HBase数据备份和数据迁移的工作. 简介 HBase的Snapshot功能可以在不复制数据的情况下,快速克隆一张表,完成一次数据备份.通过Snapsh ...

  4. 极速精简 Go 版 Logstash

    前言 今天来介绍 go-zero 生态的另一个组件 go-stash.这是一个 logstash 的 Go 语言替代版,我们用 go-stash 相比原先的 logstash 节省了2/3的服务器资源 ...

  5. HTML5和CSS3提高

    一.HTML5的新特性 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签.新的表单和新的表单属性等. 这些新特性都有兼容性问题,基本是 IE9+ 以上版本的浏览器才支持,如果不考虑兼容 ...

  6. E. 【例题5】平铺方案

    E . [ 例 题 5 ] 平 铺 方 案 E. [例题5]平铺方案 E.[例题5]平铺方案 解析 由于最近赶进度,解析写的就很简略 通过推算得出递推式 a [ i ] = a [ i − 1 ] + ...

  7. Go+gRPC-Gateway(V2) 微服务实战,小程序登录鉴权服务(五):鉴权 gRPC-Interceptor 拦截器实战

    拦截器(gRPC-Interceptor)类似于 Gin 中间件(Middleware),让你在真正调用 RPC 服务前,进行身份认证.参数校验.限流等通用操作. 系列 云原生 API 网关,gRPC ...

  8. 了解什么是redis的雪崩和穿透?redis崩溃之后会怎么样?系统该如何应对这种情况?如何处理redis的穿透?

    缓存雪崩发生的现象 缓存雪崩的事前事中事后的解决方案 事前:redis高可用,主从+哨兵,redis cluster,避免全盘崩溃 事中:本地ehcache缓存 + hystrix限流&降级, ...

  9. 【随笔】C++类静态成员变量初始化引发的惨痛教训

    事情是这样的,我在某个类中声明了一个静态的map成员, 文件名暂且称之为 xxx.h 然后在 xxx.cc 中全局定义了这个东西,静态成员在类里面只是声明,需要在外边被定义才有内存 然后又在main. ...

  10. try - with - resource

    本文详细介绍了自 JDK 7 引入的 try-with-resources 语句的原理和用法,以及介绍了 JDK 9 对 try-with-resources 的改进,使得用户可以更加方便.简洁的使用 ...