wojilu framework 自带的定时任务框架,也是基于 CacheObject 的。您自定义的定时任务,最后都需要添加到一个叫 wojilu.Web.Jobs.WebJob 的对象中。
如果要添加一个后台的定时任务,您必须完成如下2个步骤——
1、编写一个任务执行对象,实现如下接口
public interface IWebJobItem {
void Execute();
void End();
}
说明1:其中 Execute() 方法放置您需要执行的代码;
说明2:End() 方法用于清理资源,比如关闭数据库连接。注意:如果定时任务中有数据库连接,记得一定要关闭,因为定时任务是多线程执行的,数据库连接会越积越多,直至数据库无法连接;
说明3:此对象已经纳入IOC管理,所以您可以使用依赖注入。
特别说明:Execute() 方法只是定时执行,至于具体要执行什么任务,一般将这些任务缓存到系统中,您可以继承CacheObject,参考本章后面的例子
2、给wojilu.Web.Jobs.WebJob 添加一条记录,其中的Type属性指向上面实现了IWebJobItem接口的对象
说明1:如果属性 Interval<=0,则任务不会定时启动
说明2:Interval 的单位是毫秒(ms)
【注意问题】
对于发去邮件,或者远程抓取页面这样的计划任务,一般在执行一次操作之后,要随机暂停一点时间,以避免被远程服务器封锁。