.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 類型通過配置文件解析

  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"));

  

現在即可啓動程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章