ASP.NET MVC 使用 FluentScheduler 定時器計劃任務

來源:互聯網
上載者:User

標籤:.exe   nts   obs   處理   fluent   任務   並發   asp.net   程式   

FluentScheduler 是什嗎?

Automated job scheduler with fluent interface.

這是作者在 Github 上的介紹,就是一個定時工作管理員。在 .Net 下類似的有微軟的 Timer 、 Quartz.NET 、 FluentScheduler 以及Windows服務等,關於 Quartz.NET 的使用幾乎和 Java 下的 Quartz 沒什麼區別。

定時任務或者說作業調度,可能也只有在你指定一個時間做統計、發郵件或者一些你想完成的商務邏輯時有用,這也是它出現的目的。

如何使用 FluentScheduler ?

我是推薦你去作者的 Github 去看看源碼或例子,地址: https://github.com/fluentscheduler/FluentScheduler
當然,這裡我用作者的例子做了示範和翻譯,保證誰都能看的懂。

一、安裝FluentScheduler程式包
開啟程式包管理主控台,輸入Install-Package FluentScheduler即可。步驟:狀態列選擇 工具 - 庫封裝管理員 - 程式包管理主控台,如:

輸入Install-Package FluentScheduler

二、寫代碼
我這裡只簡單貼一下作者的範例程式碼,更推薦你去 Github 看,但我隨手翻譯了一下,或許更容易閱讀一些。

public class Demo : Registry{    public Demo()    {        // Schedule an IJob to run at an interval        // 立即執行每兩秒一次的計劃任務。(指定一個時間間隔運行,根據自己需求,可以是秒、分、時、天、月、年等。)        Schedule<MyJob>().ToRunNow().AndEvery(2).Seconds();         // Schedule an IJob to run once, delayed by a specific time interval        // 延遲一個指定時間間隔執行一次計劃任務。(當然,這個間隔依然可以是秒、分、時、天、月、年等。)        Schedule<MyJob>().ToRunOnceIn(5).Seconds();         // Schedule a simple job to run at a specific time        // 在一個指定時間執行計畫任務(最常用。這裡是在每天的下午 1:10 分執行)        Schedule(() => Trace.WriteLine("It‘s 1:10 PM now.")).ToRunEvery(1).Days().At(13, 10);         Schedule(() => {             // 做你想做的事兒。            Trace.WriteLine("It‘s 1:10 PM now.");         }).ToRunEvery(1).Days().At(13, 10);         // Schedule a more complex action to run immediately and on an monthly interval        // 立即執行一個在每月的星期一 3:00 的計劃任務(可以看出來這個一個比較複雜點的時間,它意思是它也能做到!)        Schedule<MyComplexJob>().ToRunNow().AndEvery(1).Months().OnTheFirst(DayOfWeek.Monday).At(3, 0);         // Schedule multiple jobs to be run in a single schedule        // 在同一個計劃中執行兩個(多個)任務        Schedule<MyJob>().AndThen<MyOtherJob>().ToRunNow().AndEvery(5).Minutes();     }  } public class MyJob : IJob{     void IJob.Execute()    {        Trace.WriteLine("現在時間是:"+DateTime.Now);    }} public class MyOtherJob : IJob{     void IJob.Execute()    {        Trace.WriteLine("這是另一個 Job ,現在時間是:" + DateTime.Now);    }} public class MyComplexJob : IJob{     void IJob.Execute()    {        Trace.WriteLine("這是比較複雜的 Job ,現在時間是:" + DateTime.Now);    }}

三、初始化
Global.asax中加入一句

JobManager.Initialize(new Demo());

上面是簡單的使用,其實已經足夠了,當然還有更多變態的需求,作者也在文檔裡寫了,比如這個:你想執行一個計劃任務,每周一 14:00 運行。但現在是星期一上午 10:00 ,那你的程式應該在今天運行還是在下周星期一?這裡用到了 ToRunEvery
還有並發任務的處理,有興趣可以去看看。

總結一下

FluentScheduler 是 .Net 下,可以讓你輕鬆實現定時任務的工具,不需要再去寫Windows服務了,更重要的是時間設定起來靈活很多,定時任務痛點不就是在這麼。

ASP.NET MVC 使用 FluentScheduler 定時器計劃任務

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.