开发工具与关键技术:Visual Studio 2015  定时任务
作者:孙水兵
撰写时间:2019年5月 16日

FluentScheduler是一个简单的任务调度框架,使用起来非常方便。作者的源码和例子的地址:https://github.com/fluentscheduler/FluentScheduler

引用的方法
1、我们使用FluentScheduler插件之前需要先引用插件FluentScheduler。在解决方案中的引用上面右键,然后选择添加引用,此时会弹出引用管理器模态框。然后点击浏览,选中FluentScheduler.dll文件,然后添加即可。
FluentScheduler.dll文件
在这里插入图片描述
2、打开管理解决方案的NuGet程序包,输入FluentScheduler即可。步骤:状态栏选择 工具 - NuGet程序包管理器 – 管理解决方案的NuGet程序包,然后输入FluentScheduler即可。

一、添加工作类
在引用完FluentScheduler.dll文件后,在解决方案里面新建一个文件夹,在文件夹中新建两个类(选中新建的文件夹—>右键—>添加—>然后选择类)。一个用来注册,一个用来做具体的任务。并且在两个类的最上方都需引用FluentScheduler插件。
在这里插入图片描述
在工作类中引用了FluentScheduler插件之后,在public class testJob之后输入 :IJob,然后就会发现IJob已经报错,然后将鼠标移动到报错处,此时会出现一个黄色的灯,然后点击黄色的灯,会出现两个字段,实现接口和显示实现接口,然后点击实现接口。
在这里插入图片描述
点击之后会自动生成一些代码,之后再其中写些要执行的代码将其中的Throw取代即可。
在这里插入图片描述
二、添加注册类
在注册类的最上方都需引用FluentScheduler插件后,和工作类类似,在public class MyRegistry 之后输入: Registry,然后在MyRegistry类中写一个构造函数MyRegistry。
在这里插入图片描述
定时的分类
立即执行计划任务
执行各种定时任务的代码一般都是类似的,最起码最前面的Schedule<执行定时任务的方法名>() 是一样的。后面的ToRunNow()是立即执行,AndEvery()是每,Seconds是秒,总的意思打开项目之后立即执行一次,然后每十秒执行一次定时任务。当然时间是可以更改的,可以是每10分钟执行一次等等,只需将AndEvery()中的数字该成自己需要的即可,Seconds也可以更改成小时、分钟等待。
在这里插入图片描述

延迟一个指定时间间隔执行
前面的一些代码和立即执行计划任务的一样,ToRunOnceIn(10).Seconds是每10秒执行一次,和立即执行计划任务的一样,其中的数字和Seconds是可以更改的。

在这里插入图片描述
指定时间执行—每天执行
ToRunEvery(1).Days().At(13,10)是指在每天的下午 1:10 分执行,其中的数字和时间也是可以更改的。但如果是每年的第几天

在这里插入图片描述
指定时间执行—每几年执行
前面一个是每一年的第五天的中午12点执行
在这里插入图片描述

指定时间执行—涉及到星期
这里是每一个月的第一个星期的星期五 的15:00执行
在这里插入图片描述

我了解到的定时任务的种类就这些了,可以根据自己的需要来选择具体需要哪种。

三、注册定时任务
在解决方案资源管理器中打开Global.asax方法(项目的入口,打开项目最先运行的代码。一般是倒数第三个),然后最上方需引用FluentScheduler插件和刚刚创建包含注册类和工作类的文件夹。然后写注册定时任务的代码。一般是JobManager.Initialize(new 注册类的方法名()),其中JobManager是工作管理,Initialize是初始化,然后new一个方法名即可
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐