在某些应用中,我们不难见到定时执行任务的功能。就比如我们常用的某某宝,里面有一个某某信用功能,某某宝会根据你的信用情况定时每个月对你的某某分进行评估;又比如某个系统会定时清理垃圾数据。除了上面所说两种外还有多种用法,而下面我要说的就是本人完成项目的过程中所用的一种用法。
首先说一下我要做的事:遍历会员表判断会员的有效期是否超过当前日期,针对超过的会员修改其会员状态。
然后说说我的思路:利用定时任务(不是setInterval和setTimeout)在后台不断的执行判断有效期的操作。
接下来进行具体操作:先把接口文件拷贝到项目文档中的bin文件夹内,然后再到项目内引用接口文件。
如图:

接下来看代码:先创建一个类给它继承接口对象,这个接口只有一个成员,而我们就只需要在它的成员内定义自己想做的事就可以了。注意类的创建要与控制器同级。
class MyJob : IJob //执行计时任务的接口 接口:它只包含了成员(方法)的声明。接口提供了派生类应遵循的标准结构。
{
public void Execute() //这里是接口成员(方法)的定义
{
MainController MyMain = new MainController(); //实例化控制器对象
MyMain.AutoAdd(); //通过控制器对象调用具体的方法来完成操作
}
}
然后在创建一个类给它继承注册计时任务的类,在类里面创建一个和类名相同的构造函数,函数体定义多久完成一次接口调用。注意类的创建要与控制器同级。
注意:从启动项目到网页打开会消耗掉计时任务的1-2秒钟时间。
class MyRegistry : Registry//注册计时任务的类
{

本文介绍了如何在后台实现定时任务,以遍历会员表检查并更新过期会员状态为例,阐述了使用非setInterval和setTimeout的定时任务方法。通过创建继承接口的类,设置计时任务并在应用程序启动时初始化,确保任务按设定时间规则执行。同时,提供了结合视图展示效果的简单代码示例,强调了后台定时任务与前端setInterval的区别。
最低0.47元/天 解锁文章
862

被折叠的 条评论
为什么被折叠?



