日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

.net任務調度框架FluentScheduler簡介_實用技巧

作者:天方 ? 更新時間: 2022-08-26 編程語言

之前我在文章中介紹過.net中的任務調度框架Hangfire,HangFire雖然本身輸入比較簡單好用的,但是,如果我們的程序本身提供的服務不是任務調度,而任務調度只是里面并不重要的小功能的時候,用HangFire顯得有點過重了,這里本文就介紹一個簡單好用的任務調度框架FluentScheduler。

比起Hangfire來,FluentScheduler相對就簡單得多,它只是提供了一個類庫,提供任務調度的基本功能,沒有像hangfire的數據庫,web服務的依賴,功能變少,也更加簡單了。非常適用于任務調度功能的集成。

它使用也比較簡單,一個簡單的示例如下:

        static void Main(string[] args)
        {
            JobManager.Initialize(new MyRegistry());
            Console.ReadLine();
        }

        public class MyRegistry : Registry
        {
            public MyRegistry()
            {
                // Schedule an IJob to run at an interval
                // 立即執行每10秒一次的計劃任務。(指定一個時間間隔運行,根據自己需求,可以是秒、分、時、天、月、年等。)
                Schedule(() => Console.WriteLine(DateTime.Now))
                   .ToRunNow().AndEvery(10).Seconds();

                // 立即執行每10秒一次的計劃任務。如果本次任務沒有結束,下一次的任務則不會開始,禁止并行運行
                Schedule(() => Console.WriteLine(DateTime.Now))
                   .NonReentrant()
                   .ToRunNow().AndEvery(10).Seconds();

                //在每天的21:15執行計劃任務
                Schedule(() => Console.WriteLine("It's 9:15 PM now."))
                   .ToRunEvery(1).Days().At(21, 15);
                
                // 立即執行一個在每月的第一個星期一 3:00 的計劃任務
                Schedule(() => Console.WriteLine("It's 3:00 AM now."))
                   .ToRunNow().AndEvery(1).Months().OnTheFirst(DayOfWeek.Monday).At(3, 0);
                
                //在每周一的21:15執行計劃任務
                Schedule(() => Console.WriteLine("It's 9:15 PM now."))
                   .ToRunEvery(1).Weeks().On(DayOfWeek.Monday).At(21, 15);
            }
        }

基本的功能還是都有的,沒有依賴項,也適用于各種.net框架,非常好用。

原文鏈接:https://www.cnblogs.com/TianFang/p/10277360.html

欄目分類
最近更新