在某些应用中,我们不难见到定时执行任务的功能。就比如我们常用的某某宝,里面有一个某某信用功能,某某宝会根据你的信用情况定时每个月对你的某某分进行评估;又比如某个系统会定时清理垃圾数据。除了上面所说两种外还有多种用法,而下面我要说的就是本人完成项目的过程中所用的一种用法。
首先说一下我要做的事:遍历会员表判断会员的有效期是否超过当前日期,针对超过的会员修改其会员状态。
然后说说我的思路:利用定时任务(不是setInterval和setTimeout)在后台不断的执行判断有效期的操作。
接下来进行具体操作:先把接口文件拷贝到项目文档中的bin文件夹内,然后再到项目内引用接口文件。
如图:
接下来看代码:先创建一个类给它继承接口对象,这个接口只有一个成员,而我们就只需要在它的成员内定义自己想做的事就可以了。注意类的创建要与控制器同级。
class MyJob : IJob //执行计时任务的接口 接口:它只包含了成员(方法)的声明。接口提供了派生类应遵循的标准结构。
{
public void Execute() //这里是接口成员(方法)的定义
{
MainController MyMain = new MainController(); //实例化控制器对象
MyMain.AutoAdd(); //通过控制器对象调用具体的方法来完成操作
}
}
然后在创建一个类给它继承注册计时任务的类,在类里面创建一个和类名相同的构造函数,函数体定义多久完成一次接口调用。注意类的创建要与控制器同级。
注意:从启动项目到网页打开会消耗掉计时任务的1-2秒钟时间。
class MyRegistry : Registry//注册计时任务的类
{