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

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

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

      .NET Core 實現后臺任務(定時任務)Longbow.Tasks 組件(三)

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

        在上兩篇文章中,簡單介紹了怎么使用 IHostedService 與 BackgroundService 實現定時任務,除此以外,我們還可以借助一些第三方的組件實現定時任務,如大家比較熟悉的 Quartz,今天給大家介紹另外一個輕量級的定時任務組件 Longbow.Tasks,Longbow.Tasks 同樣是也是繼承了 IHostedService 噢,支持cron,該組件在 Gitee 上開源,感興趣的小伙伴可以去看看,傳送門;

        值得一提的是,該組件同時支持 .NET Framework 與 .Net Core,下面看看官方說明:


      Task 任務管理

      任務服務管理是 BootstrapAdmin 內置的輕量級多線程安全的定時后臺任務模塊,功能均內置于 Longbow.Tasks.dll 組件庫內,支持 NETFramework 4.5+ 與 NETCore 2.0+

      設置

      NETCore 容器注入

      public void ConfigureServices(IServiceCollection services)
      {
          services.AddTaskServices();
      }

      NETFramework 4.5+

      // 程序入口調用
      TaskServicesManager.Init();

      組成

      ITaskServicesFactory

      后臺任務服務工廠接口,內部實現類為 TaskServicesFactory 也繼承了 IHostedService 所以組件通過 services.AddTaskServices(); 將任務服務注入到 NETCore 容器中

      IScheduler

      后臺任務調度接口,內部實現類為 DefaultScheduler 負責管理任務的調度

      ITrigger

      后臺任務觸發器接口,內部內置三個實現類分別為 (默認觸發器僅觸發一次)DefaultTrigger (周期性定時觸發器)RecurringTrigger (Cron表達式觸發器)CronTrigger 可以通過實現 ITrigger 接口根據實際業務需要自行擴展觸發器,組件默認提供 TriggerBuilder 負責創建任務觸發器

      ITask

      后臺任務業務類接口,僅一個 Task Execute(CancellationToken cancellationToken); 方法,后臺任務具體實現

      TaskServicesOptions

      后臺任務服務配置類

      TaskServicesManager:

      后臺任務服務人機交互操作類,提供所有后臺任務操作相關 API


       

        首先我們需要安裝這個組件包,搜索 Longbow.Tasks 并安裝

         注冊該組件服務,然后就可以愉快的使用了;

      builder.Services.AddTaskServices();

      1、創建一個類,并且繼承 ITask,實現接口,寫上需要執行的任務代碼:

      public class TasksDemo : ITask
      {
          public Task Execute(CancellationToken cancellationToken)
          {
              Console.WriteLine($"{DateTime.Now}");
      
              return Task.CompletedTask;
          }
      }

      2、在你需要啟動定時任務的地方,加上以下代碼,按照自己的需要選擇中意的任務執行方式唄

       1 //立即執行,僅執行一次
       2 TaskServicesManager.GetOrAdd<TasksDemo>("任務唯一標識");
       3 
       4 //周期性任務 (1 分鐘后間隔 5 秒執行2次任務)
       5 var trigger = TriggerBuilder.Default.WithInterval(TimeSpan.FromSeconds(5)).WithRepeatCount(2).WithStartTime(DateTimeOffset.Now.AddMinutes(1)).Build();
       6 
       7 TaskServicesManager.GetOrAdd<TasksDemo>("任務唯一標識", trigger);
       8 
       9 //支持cron表達式,間隔 5 秒循環執行任務
      10 TaskServicesManager.GetOrAdd<TasksDemo>("任務唯一標識", TriggerBuilder.Build("*/5 * * * * *"));

        值得一提的是,這里的 Cron 表達式并不支持年,下面我們看看 Longbow.Tasks 的官方說明:


      Cron 格式說明

      cron 表達式是用于定義固定時間、日期和間隔的掩碼。掩碼由秒(可選)、分鐘、小時、日、月和星期字段組成。所有字段都允許指定多個值,如果所有字段都包含匹配的值,則任何給定的日期/時間都將滿足指定的 cron 表達式。

                                          Allowed values    Allowed special characters   Comment
      
      ┌───────────── second (optional)       0-59              * , - /                      
      │ ┌───────────── minute                0-59              * , - /                      
      │ │ ┌───────────── hour                0-23              * , - /                      
      │ │ │ ┌───────────── day of month      1-31              * , - / L W ?                
      │ │ │ │ ┌───────────── month           1-12 or JAN-DEC   * , - /                      
      │ │ │ │ │ ┌───────────── day of week   0-6  or SUN-SAT   * , - / # L ?                Both 0 and 7 means SUN
      │ │ │ │ │ │
      * * * * * *


        有小伙伴可能要問了,那我怎么停止定時任務的執行呢,在我們啟動任務的時候,是需要輸入一個任務的唯一標識的,我們可以通過這個標識,找到我們任務的執行器,并對其進行啟動、暫停、停止等操作:

      var task = TaskServicesManager.Get("任務唯一標識");

        獲取實例后,我們來看看都提供了一些什么樣的操作吧

       1 public interface IScheduler
       2 {
       3     /// <summary>
       4     /// 獲得 任務調度名稱
       5     /// </summary>
       6     string Name { get; }
       7 
       8     /// <summary>
       9     /// 獲得/設置 調度器狀態
      10     /// </summary>
      11     SchedulerStatus Status { get; set; }
      12 
      13     /// <summary>
      14     /// 獲得 下一次運行時間 為空時表示不再運行
      15     /// </summary>
      16     DateTimeOffset? NextRuntime { get; }
      17 
      18     /// <summary>
      19     /// 獲得 上一次運行時間 為空時表示未運行
      20     /// </summary>
      21     DateTimeOffset? LastRuntime { get; }
      22 
      23     /// <summary>
      24     /// 獲得 上一次任務運行結果
      25     /// </summary>
      26     TriggerResult LastRunResult { get; }
      27 
      28     /// <summary>
      29     /// 獲得 上一次運行異常
      30     /// </summary>
      31     Exception? Exception { get; }
      32 
      33     /// <summary>
      34     /// 獲得 調度器創建時間
      35     /// </summary>
      36     DateTimeOffset CreatedTime { get; }
      37 
      38     /// <summary>
      39     /// 獲得 調度器相關觸發器
      40     /// </summary>
      41     IEnumerable<ITrigger> Triggers { get; }
      42 
      43     /// <summary>
      44     /// 獲得 調度器相關聯任務
      45     /// </summary>
      46     ITask? Task { get; }
      47 }

        好了,這次的介紹就到這,下一篇將會使用 Longbow.Tasks 進行實戰介紹【手動狗頭】

      寫在最后

      Bootstrap Blazor 官網地址:https://www.blazor.zone

        希望大佬們看到這篇文章,能給項目點個star支持下,感謝各位!

      star流程:

      1、訪問點擊項目鏈接:BootstrapBlazor   star

      2、點擊star,如下圖,即可完成star,關注項目不迷路:

       

      另外還有兩個GVP項目,大佬們方便的話也點下star唄,非常感謝:

        BootstrapAdmin 項目地址:star
        https://gitee.com/LongbowEnterprise/BootstrapAdmin

        SliderCaptcha 項目地址:star
        https://gitee.com/LongbowEnterprise/SliderCaptcha

       

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

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

       

      posted @ 2022-07-23 16:31  一事冇誠  閱讀(3837)  評論(5)    收藏  舉報
      主站蜘蛛池模板: 久久不见久久见免费影院www日本 亚洲综合精品一区二区三区 | 成人免费乱码大片a毛片| 香蕉在线精品一区二区| 亚洲人成网站77777在线观看| 曝光无码有码视频专区| 亚洲AV成人片在线观看| 免费午夜无码片在线观看影院| 亚洲美女高潮不断亚洲| 性一交一乱一乱一视频| 91色老久久精品偷偷性色| 久久夜色精品国产亚洲av| 国产97视频人人做人人爱| 亚洲国产理论片在线播放| 在线看av一区二区三区| 激情一区二区三区成人文| 又长又粗又爽又高潮的视频| 特级做a爰片毛片免费看无码| 日韩高清免费一码二码三码| 欧洲亚洲成av人片天堂网| 呻吟国产av久久一区二区| 欧美国产日产一区二区| 亚洲AV日韩AV综合在线观看 | 亚洲熟妇自偷自拍另欧美 | 忘忧草日本在线播放www| 国产精品线在线精品| 伊人春色激情综合激情网| 亚洲国产成人综合熟女| 午夜男女爽爽影院在线| 日韩人妻不卡一区二区三区| 九九热精品视频在线免费| 在线免费不卡视频| 日韩丝袜欧美人妻制服| 蜜桃av无码免费看永久| 中文字幕在线亚洲日韩6页| 洛阳市| 丁香五月婷激情综合第九色| 亚洲av成人精品日韩一区| AV人摸人人人澡人人超碰| 国产成人人综合亚洲欧美丁香花| 亚洲精品www久久久久久| 无码日韩精品一区二区三区免费|