91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET?Core如何使用Worker?Service創建服務

發布時間:2022-02-15 11:17:45 來源:億速云 閱讀:173 作者:小新 欄目:開發技術

這篇文章主要介紹了.NET Core如何使用Worker Service創建服務,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

需求來源

在幾年前, 做的項目是依賴Windows服務來支撐一些業務, 目前已經把技術棧全部由.NET Framework 升級至 .NET Core x。

舊得需求大部分是,接入一些第三方得硬件設備, 例如PLC、串口讀卡器、TCP閱讀器、各種硬件模塊。
為了能夠讓任何開發語言接入無需重新實現, 所以使用Windows服務添加支持各類硬件API、對外使用MQTT.NET來進行協議開發。

版本更新

考慮到目前軟件的更新,其中包括安裝文件、SDK都是基于.NET Core, 所以使用Worker Service來創建服務, 該服務支持在Windows與Linux運行。

創建WorkerService

創建完成后, 整個默認項目包含Program以及一個Worker示例, 配置的模式與ASP.NET Core相同。

    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseWindowsService()
                .ConfigureServices((hostContext, services) =>
                {
                    services.AddHostedService<Worker>(); 
                });
    }

可以看到在配置服務中,AddHostedService添加了一個Worker, 類型約束IHostedService

關于Worker類的實現

public class Worker : BackgroundService
    {
        private readonly ILogger<Worker> _logger;

        public Worker(ILogger<Worker> logger)
        {
            _logger = logger;
        }

        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
                await Task.Delay(1000, stoppingToken);
            }
        }
    }
  • ExecuteAsync
    在服務啟動時,會執行該方法,每秒鐘輸入當前時間

查看父類BackgroundService的實現,可以看到有支持重寫的方法。

        public virtual void Dispose();
        public virtual Task StartAsync(CancellationToken cancellationToken);
        public virtual Task StopAsync(CancellationToken cancellationToken);

意思就是,我們可以在啟動服務時候觸發的邏輯以及暫停服務觸發的邏輯都可以自行編寫。

安裝服務

發布之后,即可使用sc.exe 來安裝/啟動/暫停/卸載服務等。

  • 安裝服務
    sc.exe create MyService binPath=C:\User\WorkerService.exe

  • 查詢服務狀態
    sc.exe query MyService

  • 啟動服務
    sc.exe start MyService

  • 暫停服務
    sc.exe stop MyService

  • 卸載服務
    sc.exe delete MyService

感謝你能夠認真閱讀完這篇文章,希望小編分享的“.NET Core如何使用Worker Service創建服務”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳春市| 喀喇| 玉树县| 中西区| 南康市| 六盘水市| 开远市| 梁平县| 肥城市| 泽州县| 措勤县| 林口县| 托克托县| 四会市| 朔州市| 依兰县| 汶上县| 教育| 德惠市| 高邮市| 义乌市| 双峰县| 江北区| 扎囊县| 巴中市| 百色市| 夏津县| 松溪县| 常熟市| 台南县| 宜川县| 洞口县| 高唐县| 房产| 仁化县| 邯郸县| 潼南县| 宜黄县| 孟村| 肇东市| 施秉县|