.Net core Worker Service 扩展库
.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 类型通过配置文件解析
- 在配置文件添加节点
"WeTools": {
"Dir": "/", //worker 所在文件夹, 根目录为 / ;
"Workers": [
{
"Name": "Worker2",
"WorkerName": "Worker2",//具体的实现类名
"Enable": true //此节点控制worker 的运行
},
{
"Name": "Worker",
"WorkerName": "Worker",
"Enable": true
}
]
}
新建worker,并继承WeToolBackgroundService。
在Program类 ConfigureServices 里注册服务
services.AddServiceOptions(hostContext);
services.UseWorkers();
方式2 worker 通过特性解析
- 在配置文件添加节点
"WeTools": {
"Worker": {
"name":"testworker",//可选,默认为特性输入的名称
"workername":"",//可选,默认为特性解析的worker类名
"Enable": true
},
"Worker2":{
"Enable": true
}
}
或者 自定义配置节点
"myconfig":
{
"DemoWorker":
{
"name": "adf123",
"Enable": true
}
}
或者 根节点下直接添加
"DemoWorker":
{
"Enable": true
},
"DemoWorker2":
{
"Enable": true
},
新建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 扩展库的更多相关文章
- .NET 中的 Worker Service 入门介绍
翻译自 Steve Gordon 2020年3月30日的文章 <WHAT ARE .NET WORKER SERVICES?> [1] 随着 .NET Core 3.0 的发布,ASP.N ...
- 在 ASP.NET Core和Worker Service中使用Quartz.Net
现在有了一个官方包Quartz.Extensions.Hosting实现使用Quartz.Net运行后台任务,所以把Quartz.Net添加到ASP.NET Core或Worker Service要简 ...
- .NET Core中的Worker Service
当你想到ASP.NET Core时,可能会想到Web应用程序后端代码,包括MVC和WebAPI.MVC视图和Razor页面还允许使用后端代码生成带有HTML元素的前端UI.全新的Blazor更进一步, ...
- 基于.Net Core 5.0 Worker Service 的 Quart 服务
前言 看过我之前博客的人应该都知道,我负责了相当久的部门数据同步相关的工作.其中的艰辛不赘述了. 随着需求的越来越复杂,最近windows的计划任务已经越发的不能满足我了,而且计划任务毕竟太弱智,总是 ...
- ServiceStack.Redis 的 ASP.NET Core 扩展库
给大家安利一款 ServiceStack.Redis 的 ASP.NET Core 扩展库,它是基于 ServiceStack.Redis.Core 开发的. 简单易用,开源免费,使用ASP.NET ...
- Log4net 的 ASP.NET Core 扩展库
给大家安利一款 log4net 的 ASP.NET Core 扩展库,它是基于 log4net 开发的. 简单易用,开源免费,使用ASP.NET Core自身提供的DI容器来实现服务的注册和消费.直接 ...
- ASP.NET Core扩展库
亲爱的.Neter们,在我们日复一日的编码过程中是不是会遇到一些让人烦恼的事情: 日志配置太过复杂,各种模板.参数也搞不清楚,每次都要去查看日志库的文档,还需要复制粘贴一些重复代码,好无赖 当需要类型 ...
- ASP.NET Core扩展库之日志
上一篇我们对Xfrogcn.AspNetCore.Extensions扩展库功能进行了简单的介绍,从这一篇文章开始,我将逐步介绍扩展库中的核心功能. 日志作为非业务的通用领域基础功能, ...
- ASP.NET Core扩展库之Http通用扩展
本文将介绍Xfrogcn.AspNetCore.Extensions扩展库对于Http相关的其他功能扩展,这些功能旨在处理一些常见需求, 包括请求缓冲.请求头传递.请求头日志范围.针对HttpClie ...
随机推荐
- Python基础之数据类型详解
为什么会有数据类型? 在介绍具体的数据类型之前,需要了解为什么需要区分数据类型.我们知道,一个公司会有很多个大的部门,每个部门下又会有许多细分的小部门,构成了公司的完整体系结构.如果把python的数 ...
- 单链表c语言实现的形式
包括初始化,创建,查询,长度,删除,清空,销毁等操作 代码如下: #include<stdio.h> #include<stdlib.h> //定义单链表的数据类型 typed ...
- Kubernetes中利用Kubectl set 让Deployment更新镜像
问题描述 我的deployment有单个pod,我的自定义docker镜像如下: containers: - name: mycontainer image: myimage:latest 在开发过程 ...
- HTML(一):语法结构
HTML语法规范 基本语法概述 HTML标签是由尖括号包围的关键词,例如<html>. 2HTML标签通常是成对出现的,例如<html>和</html> ,我们称为 ...
- 使用 shell 做 tcp 协议模拟
问题背景 公司有一套消息推送系统(简称GCM),由于人事变动接手了其中的客户端部分.看了一下文档,仅通讯协议部分有几页简单的说明,代码呢又多又乱,一时理不出一个头绪.由于消息是从后台推送到端的,所以使 ...
- Dapper, Ef core, Freesql 插入大量数据性能比较(二)
在上一篇文章中,我们比较出单表插入9999行数据,Dapper > EfCore > Freesql.在本文中,我们来看看级联插入 构建9999行数据 List<Entity> ...
- 201871030135-姚辉 实验二 个人项目—《D{0-1} KP》项目报告
项目 内容 课程班级博客链接 课程班级博客链接 这个作业要求链接 这个作业要求链接 我的课程学习目标 (1)掌握软件项目个人开发流程.(2)掌握Github发布软件项目的操作方法. 这个作业在哪些方面 ...
- BUAAOO第二单元代码分析
第一次作业 设计思路与感想 第一次作业是要求有捎带的电梯实现, 第一次作业是花费的时间比较长的一次,花费了很多的时间去思考架构的问题.起初是想要搞三个线程的:输入线程,调度器线程和电梯线程,想要搞一个 ...
- CentOS更换aliyun镜像站
目录 1. 官方地址 2. 社区文档 3. 镜像更换 3.1 配置方法: 3.1.1. 备份原配置文件 3.1.2. 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/ ...
- Day06_31_接口(Interface)
java 接口(Interface) 接口和抽象类的区别? 子类只能通过extends关键字去继承抽象类(Abstract),子类(如果不是抽象类)则必须覆写抽象类之中的全部抽象方法(如果子类没有实现 ...