词条统计
浏览次数:5167 次
编辑次数:1次 历史版本
最近更新:2013/6/20
创建者:掷鸡蛋者

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) 

 

【注意问题】

对于发去邮件,或者远程抓取页面这样的计划任务,一般在执行一次操作之后,要随机暂停一点时间,以避免被远程服务器封锁。