定时的作业调度工具很多以前用过是Quartz.NET这个,后面也用过FluentScheduler,个人绝对比较好用,所以记录下
老规矩 nuget下载
上代码,一看就懂
static void Main(string[] args)
{
初始化,并执行
JobManager.Initialize(new ApiJobFactory());
//停止任务
JobManager.Stop();
}
//注册类 继承 Registry (设置执行频率和要执行的job)
//注册一个任务调度
public class ApiJobFactory : Registry
{
public ApiJobFactory()
{
// 立即执行每两秒一次的计划任务。(指定一个时间间隔运行,根据自己需求,可以是秒、分、时、天、月、年等。)
//Schedule<GetJDhttpJob>().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);
Schedule<GetJDhttpJob>().ToRunEvery(1).Days().At(16, 55);
立即执行一个在每月的星期一 3:00 的计划任务(可以看出来这个一个比较复杂点的时间,它意思是它也能做到!)
//Schedule<GetJDhttpJob>().ToRunNow().AndEvery(1).Months().OnTheFirst(DayOfWeek.Monday).At(3, 0);
在同一个计划中执行两个(多个)任务 AndThen
//Schedule<Demo>().AndThen<Demo>().AndThen<Demo>().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类 的继承类就可以去控制定时调度了!