一、定时任务调度的方法或者组件:任务定时器–FluentScheduler组件可以在C#和ASP.NET程序中使用,使用方法很简单,官方有使用案例: FluentScheduler 中 对象: IJob(工作)、Registry(注册)、Schedule(计划) 二、实例项目需要一个按时执行的任务,每隔几分钟执行一个,或者每隔几小时执行一次等等,这个时候就需要一个定时的功能,最简单的就是用Timer自己写一个,但是自己写的性能等各方面有可能不健全等等,而现在开源的库也越来越多,功能也越来越好,直接拿来主义。 1.NuGet下载FluentScheduler控件FluentScheduler定时任务库,通过nuget引用,可以设置各种事件间隔,,超级方便简单。 2.编写一个注册表。继承Registry类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(); // 先执行第一个Job、再执行第二个Job;完成后等5秒继续循环 Schedule<MyJob>().AndThen<MyOtherJob>().ToRunNow().AndEvery(5).Minutes(); } } } 3.编写定时执行任务,工作类根据使用方法,是否实现IJob接口 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}"); } } 4.初始化定时器定时任务写好之后只需要在Main中引用就可以了 // static void Main(string[] args)JobManager.Initialize(new MyRegistry()); 在ASP.NET程序的Global.asax文件中,首先初始化管理器,这样定时器就开启了。 protected void Application_Start(){ JobManager.Initialize(new MyRegistry()); } 以上是第一种写法,下面介绍第二种写法,这里执行多个任务 不同时间段 protected void Application_Start(){ JobManager.AddJob<MyJob>(t=>t.ToRunEvery(1).Days().At(24,00));//每天的凌晨12点 执行 JobManager.AddJob<MyOtherJob>(t => t.ToRunEvery(1).Months().OnTheLastDay().At(8,30));//每个月的最后一天早上八点半 执行 JobManager.Start();//启动任务管理器 } 到此这篇关于C#定时器插件FluentScheduler的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。 |
本文实例为大家分享了C# GDI+实现时钟表盘的具体代码,供大家参考,具体内容如下一、...
目录一、正则表达式应用举例1、C#校验合法性:2、C#限制输入3、正则表达式匹配闭合HTM...
本文实例为大家分享了C#实现图形界面的时钟的具体代码,供大家参考,具体内容如下秒针...
目录一、ObjectContext对象上下文1、ObjectContext和DbContext的对比2、ObjectContext...
IronPython是一种在 .NET及 Mono上的 Python实现,由微软的 Jim Hugunin所发起,是一...
本文实例为大家分享了使用C#写一个时钟,供大家参考,具体内容如下时钟是这样的一共使...
一、介绍Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行...
本文实例为大家分享了C#实现动态数字时钟和日历的具体代码,供大家参考,具体内容如下...