FluentScheduler定時器計劃任務
阿新 • • 發佈:2018-06-01
任務 package cond 一個 src 難點 作業 做到 下午
http://www.cnblogs.com/lgxlsm/p/6734011.html
用了FluentScheduler後,再也比想用timer計時器了。
FluentScheduler 是 .Net 下,可以讓你輕松實現定時任務的工具,不需要再去寫Windows服務了,更重要的是時間設置起來靈活很多,定時任務難點不就是在這麽。
1.nuget包
<?xml version="1.0" encoding="utf-8"?> <packages> <package id="FluentScheduler" version="5.1.4" targetFramework="net45" /> </packages>
2.使用例子
using FluentScheduler; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FluentSchedulerTest { public static class Scheduler { /// <summary> /// 啟動定時任務 /// </summary> public static void StartUp() { JobManager.Initialize(new ApiJobFactory()); } /// <summary> /// 停止定時任務 /// </summary> public static void Stop() { JobManager.Stop(); } } /// <summary> /// 待處理的作業工廠,在構造函數中設置好各個Job的執行計劃。 /// 參考【https://github.com/fluentscheduler/FluentScheduler】 /// </summary> internal class ApiJobFactory : Registry { public ApiJobFactory() { // 立即執行每兩秒一次的計劃任務。(指定一個時間間隔運行,根據自己需求,可以是秒、分、時、天、月、年等。) Schedule<Demo>().ToRunNow().AndEvery(2).Seconds(); // 延遲一個指定時間間隔執行一次計劃任務。(當然,這個間隔依然可以是秒、分、時、天、月、年等。) Schedule<Demo>().ToRunOnceIn(5).Seconds(); // 在一個指定時間執行計劃任務(最常用。這裏是在每天的下午 1:10 分執行) Schedule(() => Trace.WriteLine("It‘s 1:10 PM now.")).ToRunEvery(1).Days().At(13, 10); // 立即執行一個在每月的星期一 3:00 的計劃任務(可以看出來這個一個比較復雜點的時間,它意思是它也能做到!) Schedule<Demo>().ToRunNow().AndEvery(1).Months().OnTheFirst(DayOfWeek.Monday).At(3, 0); // 在同一個計劃中執行兩個(多個)任務 Schedule<Demo>().AndThen<Demo>().ToRunNow().AndEvery(5).Minutes(); } } internal class Demo : IJob { void IJob.Execute() { Trace.WriteLine("開始定時任務了,現在時間是:" + DateTime.Now); } } }
FluentScheduler定時器計劃任務