FluentScheduler定時器

FluentScheduler定時任務庫,經過nuget引用,能夠設置各類事件間隔,,超級方便簡單。git

FluentScheduler定時器例子

using FluentScheduler;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NetFrameTest.test
{
    public class MyRegistry : Registry
    {
        public MyRegistry()
        {
            // 天天執行一次(這裏是在天天的下午 15:40 分執行),能夠不用類,直接虛擬方法
            Schedule(() => Console.WriteLine("It's 15:42  now.")).ToRunEvery(1).Days().At(15, 42);

            // 每兩秒執行一次(指定一個時間間隔運行,根據本身需求,能夠是秒、分、時、天、月、年等。)
            Schedule<MyJob>().ToRunNow().AndEvery(2).Seconds();

            // 每五秒執行一次(延遲一個指定時間間隔執行一次計劃任務)
            Schedule<MyJob>().ToRunOnceIn(5).Seconds();

            // 每個月執行一次(這裏是在每個月的第一週的週一3點執行)
            Schedule<MyJob>().ToRunNow().AndEvery(1).Months().OnTheLast(DayOfWeek.Friday).At(16, 0);

            // 構造函數執行
            Schedule(() => new MyOtherJob("Foo")).ToRunNow().AndEvery(2).Seconds();

            // 在同一個計劃中執行兩個(多個)任務
            Schedule<MyJob>().AndThen<MyOtherJob>().ToRunNow().AndEvery(5).Minutes();
        }

    }

    public class MyJob : IJob
    {
        public void Execute()
        {
            Console.WriteLine($"MyJob  當前時間:{DateTime.Now}");
        }
    }

    public class MyOtherJob : IJob
    {
        private string Name;
        public MyOtherJob(string name)
        {
            Name = name;
        }

        public void Execute()
        {
            Console.WriteLine($"MyOtherJob 姓名:{Name}  當前時間:{DateTime.Now}");
        }
    }
}

定時任務寫好以後只須要在Main中引用就能夠了github

//  static void Main(string[] args)
JobManager.Initialize(new MyRegistry());

FluentScheduler源碼地址

https://github.com/fluentscheduler/FluentScheduler函數

相關文章
相關標籤/搜索