.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"));
現在即可啟動程式。