FluentScheduler定時任務庫,經過nuget引用,能夠設置各類事件間隔,,超級方便簡單。git
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());