.net任務調度框架FluentScheduler簡介

之前我在文章中介紹過.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框架,非常好用。

到此這篇關於.net任務調度框架FluentScheduler的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: