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