项目需要一个按时执行的任务,每隔几分钟执行一个,或者每隔几小时执行一次等等,这个时候就需要一个定时的功能,最简单的就是用Timer自己写一个,但是自己写的性能等各方面有可能不健全等等,而现在开源的库也越来越多,功能也越来越好,我们是一批站在巨人肩上的人,好的东西也学会用,直接拿来主义。FluentScheduler定时任务库,通过nuget引用,可以设置各种事件间隔,,超级方便简单。

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中引用就可以了
// static void Main(string[] args) JobManager.Initialize(new MyRegistry());
FluentScheduler源码地址

https://github.com/fluentscheduler/FluentScheduler
<https://github.com/fluentscheduler/FluentScheduler>

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信