定时的作业调度工具很多以前用过是Quartz.NET这个,后面也用过FluentScheduler,个人绝对比较好用,所以记录下
老规矩 nuget下载
上代码,一看就懂
- static void Main(string[] args)
- {
- 初始化,并执行
- JobManager.Initialize(new ApiJobFactory());
-
- //停止任务
- JobManager.Stop();
- }
-
-
- //注册类 继承 Registry (设置执行频率和要执行的job)
- //注册一个任务调度
- public class ApiJobFactory : Registry
- {
- public ApiJobFactory()
- {
- // 立即执行每两秒一次的计划任务。(指定一个时间间隔运行,根据自己需求,可以是秒、分、时、天、月、年等。)
- //Schedule
().ToRunNow().AndEvery(2).Seconds(); -
- 延迟一个指定时间间隔执行一次计划任务。(当然,这个间隔依然可以是秒、分、时、天、月、年等。)
- //Schedule
().ToRunOnceIn(5).Seconds(); -
- 在一个指定时间执行计划任务(最常用。这里是在每天的下午 1:10 分执行)
- //Schedule(() =>
-
- //Trace.WriteLine("It's 1:10 PM now.")
-
- //).ToRunEvery(1).Days().At(13, 10);
-
- Schedule
().ToRunEvery(1).Days().At(16, 55); -
- 立即执行一个在每月的星期一 3:00 的计划任务(可以看出来这个一个比较复杂点的时间,它意思是它也能做到!)
- //Schedule
().ToRunNow().AndEvery(1).Months().OnTheFirst(DayOfWeek.Monday).At(3, 0); -
- 在同一个计划中执行两个(多个)任务 AndThen
- //Schedule
().AndThen().AndThen().ToRunNow().AndEvery(5).Minutes(); - }
- }
-
-
- //显示任务执行,具体要做的事情
- internal class GetJDhttpJob : IJob
- {
- void IJob.Execute()
- {
- string ss = "";
- try
- {
- //..........
-
-
-
- LogOpera.WriteLogFile(ss);
- }
- catch (Exception ex)
- {
- LogOpera.WriteLogFile(DateTime.Now + " 出现异常:" + ex.Message);
- }
- }
-
- }
所以很简单,Registry类和IJob类 的继承类就可以去控制定时调度了!