<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      .NET Core 實(shí)現(xiàn)后臺任務(wù)(定時(shí)任務(wù))IHostedService(一)

      原文鏈接:http://www.rzrgm.cn/ysmc/p/16456787.html

        最近有小伙伴問道,在 .Net Core 中,如何定時(shí)執(zhí)行任務(wù),而因?yàn)樾枰獔?zhí)行的任務(wù)比較簡單,并不想使用其它的中間件(如 Quartz 等等),在這樣的需求下,我給大家介紹一下.Net 內(nèi)置的后臺任務(wù) IHostedService

        貫徹本人的習(xí)慣,不廢話,直接上代碼,首先我們創(chuàng)建一個類,該類繼承 IHostedService 接口,并實(shí)現(xiàn)該接口成員,同時(shí)我用到了 .NET內(nèi)置的定時(shí)器類 Timer,具體這個 Timer 是什么,我這里就不介紹了,有興趣的小伙伴可以到官方文檔了解 傳送門

        在不需要定時(shí)執(zhí)行任務(wù)的時(shí)候,也可以在這里進(jìn)行應(yīng)用啟動后的操作,例如創(chuàng)建 RabbitMQ 連接【手動狗頭】

        同時(shí),我們需要在 Program.cs(.Net 5 及一下在 Startup.cs)中添加以下配置。

      // .Net 6
      builder.Services.AddHostedService<TestHostedService>();
      
      // .Net  5 及以下
      services.AddHostedService<TestHostedService>();
       1 public class TestHostedService : IHostedService, IDisposable
       2 {
       3     private Timer? _timer;
       4 
       5     public Task StartAsync(CancellationToken cancellationToken)
       6     {
       7         _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromSeconds(5));
       8 
       9         return Task.CompletedTask;
      10     }
      11 
      12     private void DoWork(object? state)
      13     {
      14         Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss}");
      15     }
      16 
      17     public Task StopAsync(CancellationToken cancellationToken)
      18     {
      19         Console.WriteLine("StopAsync");
      20 
      21         return Task.CompletedTask;
      22     }
      23 
      24 
      25     public void Dispose()
      26     {
      27         _timer?.Dispose();
      28     }        
      29 }

        上面的代碼非常簡單,應(yīng)用在運(yùn)行后,會去執(zhí)行 StartAsync 函數(shù),應(yīng)用關(guān)閉執(zhí)行 StopAsync,由于我在這里使用的定時(shí)器,所以每過5秒都會執(zhí)行一次 DoWork 函數(shù),以下是運(yùn)行效果

       

         需要注意的是,這里的定時(shí)是不等待任務(wù)執(zhí)行完成,只要時(shí)間一到,就會調(diào)用 DoWork 函數(shù),所以適合一些簡單、特定的場景,后續(xù)我將針對這些問題多寫幾個文檔,大佬們有什么建議盡管提,加油!

      以下為官方文檔對 IHostedService 接口 的說明


       

      IHostedService 接口

      IHostedService 接口為主機(jī)托管的對象定義了兩種方法:

      • StartAsync(CancellationToken)
      • StopAsync(CancellationToken)

      StartAsync

      StartAsync(CancellationToken) 包含用于啟動后臺任務(wù)的邏輯。 在以下操作之前調(diào)用 StartAsync

      • 已配置應(yīng)用的請求處理管道。
      • 已啟動服務(wù)器且已觸發(fā) IApplicationLifetime.ApplicationStarted。

      StartAsync 應(yīng)僅限于短期任務(wù),因?yàn)橥泄芊?wù)是按順序運(yùn)行的,在 StartAsync 運(yùn)行完成之前不會啟動其他服務(wù)。

      StopAsync

      • StopAsync(CancellationToken) 在主機(jī)執(zhí)行正常關(guān)閉時(shí)觸發(fā)。 StopAsync 包含結(jié)束后臺任務(wù)的邏輯。 實(shí)現(xiàn) IDisposable 和終結(jié)器(析構(gòu)函數(shù))以處置任何非托管資源。

      默認(rèn)情況下,取消令牌會有五秒超時(shí),以指示關(guān)閉進(jìn)程不再正常。 在令牌上請求取消時(shí):

      • 應(yīng)中止應(yīng)用正在執(zhí)行的任何剩余后臺操作。
      • StopAsync 中調(diào)用的任何方法都應(yīng)及時(shí)返回。

      但是,在請求取消后,將不會放棄任務(wù),調(diào)用方會等待所有任務(wù)完成。

      如果應(yīng)用意外關(guān)閉(例如,應(yīng)用的進(jìn)程失敗),則可能不會調(diào)用 StopAsync。 因此,在 StopAsync 中執(zhí)行的任何方法或操作都可能不會發(fā)生。

      若要延長默認(rèn)值為 5 秒的關(guān)閉超時(shí)值,請?jiān)O(shè)置:

      • ShutdownTimeout(當(dāng)使用通用主機(jī)時(shí))。
      • 使用 Web 主機(jī)時(shí)為關(guān)閉超時(shí)值主機(jī)配置設(shè)置。

      托管服務(wù)在應(yīng)用啟動時(shí)激活一次,在應(yīng)用關(guān)閉時(shí)正常關(guān)閉。 如果在執(zhí)行后臺任務(wù)期間引發(fā)錯誤,即使未調(diào)用 StopAsync,也應(yīng)調(diào)用 Dispose


       

      寫在最后

      Bootstrap Blazor 官網(wǎng)地址:https://www.blazor.zone

        希望大佬們看到這篇文章,能給項(xiàng)目點(diǎn)個star支持下,感謝各位!

      star流程:

      1、訪問點(diǎn)擊項(xiàng)目鏈接:BootstrapBlazor   star

      2、點(diǎn)擊star,如下圖,即可完成star,關(guān)注項(xiàng)目不迷路:

       

      另外還有兩個GVP項(xiàng)目,大佬們方便的話也點(diǎn)下star唄,非常感謝:

        BootstrapAdmin 項(xiàng)目地址:star
        https://gitee.com/LongbowEnterprise/BootstrapAdmin

        SliderCaptcha 項(xiàng)目地址:star
        https://gitee.com/LongbowEnterprise/SliderCaptcha

       

      交流群(QQ)歡迎加群討論

             BA & Blazor ①(795206915)          BA & Blazor ②(675147445)

      posted @ 2022-07-08 01:02  一事冇誠  閱讀(7445)  評論(10)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产一区精品在线免费看| 秋霞在线观看秋| 性久久久久久| 亚洲成人av高清在线| 国产盗摄xxxx视频xxxx| 欧美日韩中文国产一区| 久久伊99综合婷婷久久伊| 国产一区二区三区自拍视频| 欧美性69式xxxx护士| 亚洲男女羞羞无遮挡久久丫 | 亚洲第一无码专区天堂| 精品一区二区三区不卡| 国产一区二区三区乱码| 亚洲一区二区三区在线| 亚洲中文字幕综合小综合| 国产午夜精品在人线播放| 无码中文字幕热热久久| 久久99精品久久久久久齐齐| 国产精品高清中文字幕| 广河县| 日韩人妻精品中文字幕专区| 欧美巨大极度另类| 国产成人av一区二区三区不卡| 亚洲国产高清第一第二区 | 丁青县| 国产自产在线视频一区| 在线观看国产成人av片| 国产成人精品视频不卡| 国产精品不卡一二三区 | 亚洲一二区制服无码中字| 久女女热精品视频在线观看| 亚洲区色欧美另类图片| 九九久久人妻一区精品色| 樱桃视频影院在线播放| 国产乱码精品一区二区上| 成人3D动漫一区二区三区| 人妻护士在线波多野结衣| 久久99热只有频精品8| 毛片av在线尤物一区二区 | 亚洲精品国产av一区二区| 国产破外女出血视频|