FluentScheduler定时器计划任务

定时任务和所有的页面控制都是无关的,它是一个开元的C#的定时器。
想用这个效果前必须先传入FluentScheduler.dll(引用)。
FluentScheduler定时器计划任务
然后在一个制造的类里面引用到FluentScheduler,然后在命名一个类来继承 。在类名的后面放一个接口(Registry)然后实现一个方法,实现它的构造器。
FluentScheduler定时器计划任务
这个类主要用来管理的 ,还得写一个类来工作,当然这个类也得引用FluentScheduler。

例: 定时任务演示类:主要是用来执行一些操作
Public class TestJob:Ijob(实现接口的作用)
{
Public void Execute()
{
String path = “E:/log.txt”;
TextWriter textWriter = new StremWriter(path.ture, new UTF8Encoding(false));
textWriter.WriteLine(DateTime.Now.ToString(“yyyy-MM-dd HH:mm:ss”));
textWriter.Close(); //在E盘创建一个log.txt的文件,在里面写上创建时的时间。也可以设置在其它盘里放置其它的文件,或者定时其它的一些事。
}
}

在第一个类里面就是得控制它去怎么执行这个操作:如:

  1. Schedule()[工作的这个类].ToRunNow().AndEverry().Seconds()[没多少秒运行一次]; 注:立即执行计划任务,并根据指定时间间隔执行一次计划任务,指定的时间间隔可以是秒,分,时,天,月等。根据自己需求来设置的

  2. Schedule().ToRunOnce().Seconds(); 注:延迟一个指定的时间间隔执行一次计划任务。

3.Schedule().ToRunEvery(1 ).Hours().At(10); 注:在一个指定时间执行计划任务 每个小时的第10分钟执行
4. Schedule().ToRunEvery().Days().At(); 注 :在一个指定时间执行计划任务。
5. Schedule().ToRunEvery().Years().On().At(); 注 :每n年的第几天的第几点。
6. Schedule< TestJob >().ToRunEvery().Years().OnTheLastDay(); 注:每n年的最后一天。
7. Schedule< TestJob >().ToRunEvery(1).Months().On().At();注:每n月的第几天的第几天
8. Schedule< TestJob >().ToRunEvery(1).Months().OnTheFirst(DayOfWeek.Friday).At(15, 0); 注:每n月的第一个星期的星期5 的15:0执行。

主要是通过Schedule来指定一个工作,如果是<>类型的就是传入一个已经定义好的工作类。有时候不想单独定义一个工作类的时候就可以用:
Schedule(() =>{}).ToRunOnceIn().Seconds(); 在大括号里面写入你要执行的操作,这样就和第一种方法的执行是一样的了。不过这样是不需要在创一个工作类的
而且Schedule后面我们都是调用To开头的几个方法:
ToRunEvery():指定多少时间后执行,它后面的参数可以是Days(天数),Hours(小时),Milliseconds(毫秒),Minutes(分钟),Months(月份),Seconds(秒),Weeks(一周),Years(一周) 等等 这些是比较常用的。
ToRunNow():立即执行。
ToRunOnceAt():指定一个时间 只执行一次。
ToRunOnceln():延迟一个特定的时间间隔,且只运行一次。

在运行前我们还必须在Global.asax(项目的入口程序)这里注册定时任务,这里也必须先引用FluentScheduler。
FluentScheduler定时器计划任务
FluentScheduler定时器计划任务

还有一种类是用来定时清理的,这样当第一个任务完成后,建立的临时目录不需要我们直接去清理,它会自动帮你清理掉。

清理类的介绍:
我们首先先获取运行目录+Document\Temp来获取临时目录的绝对路径
FluentScheduler定时器计划任务
然后在里面写一个判断:
FluentScheduler定时器计划任务
在然后在第一个管理类里面加上这个作用。如:
Schedule清理类的名字.ToRunNow().AndEvery(1).Days().At(3, 00); 注:在每天3点清理数据。
也可以在执行第一个任务操作的同时,执行清理任务,如:
Schedule().AndThen().ToRunEvery(1).Months().OnTheFirst(DayOfWeek.Friday).At(15, 0); 注:每n月的第一个星期的星期5 的15:0执行
我们只需要在前面加上清理的类就行。