添加定时任务

(作者:杨先金;撰写时间:2019年5月13日)
1、定义:
“定时任务”指的是在规定的时间段内或时间点去执行某一操作。
2、事例:
比如说一个项目的业务,用户上传文件到保存到服务器的过程中会有一个中间操作,这个中间操作就是会先把用户上传的文件保存到临时目录里去,然后才是保存到数据库。那么问题来了,作为中间容器的临时目录,它里面的内容会随着时间的推移越积越多,不利于长足发展,因此就有了定时任务,把临时目录里的那些不用的过时文件全部清除,以下就是对这一定时任务的具体代码的详细描述:
在这里插入图片描述
首先是要在项目里面创建一个用于保存该定时任务的文件夹,给它取名为Timer,在它的里面去添加类,分别为MyRegistry和ClearJob,在MyRegistry里面去写定时任务的具体“操作”,而在ClearJob里面则写的是定时任务的“时间”。
续上图:
在这里插入图片描述
(1)、ClearJob:首先添加引用System.IO,让它继承System.IO里面的IJob静态类,然后就是获取到临时目录的绝对路径,判断这个临时目录是否存在,如果不存在就创建一个临时目录,否则删除所有的子目录和子文件:Directory.Delete(子目录和子文件, true);
(2)、MyRegistry:添加引用FluentScheduler,让它继承它里面的Registry静态类,然后给它添加任务时间:Schedule().ToRunNow().AndEvery(10).Days().At(3, 00);让它在每天凌晨3点清理数据,定时任务在项目一启动的那一刻起,就会严格地按照规定时间去执行具体操作。
在这里插入图片描述
3、其他定时任务时间的设置
(1)、每10秒执行一次:.ToRunOnceIn(10).Seconds();
(2)、在2019年3月25日16时42分58秒执行一次:.ToRunOnceAt(new DateTime(2019, 3, 25, 16, 42, 58));
(3)、从现在开始每10秒执行一次:.ToRunNow().AndEvery(10).Seconds();
(4)、在每个小时的第46分执行:.ToRunEvery(1).Hours().At(46);
(5)、在每天的下午 1:10 分执行:.ToRunEvery(1).Days().At(13,10);
(6)、每n年的第几天:.ToRunEvery(1).Years().On(5).At(12,00);
(7)、每n年的最后一天:.ToRunEvery(1).Years().OnTheLastDay();
(8)、每n月的第几天:.ToRunEvery(1).Months().On(1).At(12,0);
(9)、每n月的第一个星期的星期5 的15:0执行:.ToRunEvery(1).Months().OnTheFirst(DayOfWeek.Friday).At(15, 0);
(10)、每n月的第一个星期的星期5 的15:0执行:.ToRunEvery(1).Months().OnTheFirst(DayOfWeek.Friday).At(15, 0);

猜你喜欢

转载自blog.csdn.net/weixin_44541162/article/details/90268133