定时任务 FluentScheduler
参考自:
https://www.codercto.com/a/53093.html
https://www.bianchengquan.com/article/599597.html
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FluentScheduler { class Program { static void Main(string[] args) { JobManager.Initialize(new MyRegistry()); Console.ReadLine(); } public class MyRegistry : Registry { public MyRegistry() { //NonReentrant() 不允许并行处理 // 启动时执行一次,然后每隔 10秒一次的计划任务。(指定一个时间间隔运行,根据自己需求,可以是秒、分、时、天、月、年等。) Schedule(() => Console.WriteLine(DateTime.Now.Millisecond)).NonReentrant().ToRunNow().AndEvery(1).Milliseconds(); //启动时不执行,以启动时间为准,在每天的几点几分到几点几分之间,每隔interval参数的(秒,分钟,小时等)执行一次任务计划 Schedule(() => Console.WriteLine(DateTime.Now)).NonReentrant().ToRunEvery(1).Minutes().Between(9,53, 11, 55); // 立即执行每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); } } } }