现在的位置: 首页 > 综合 > 正文

Quartz.NET 轻松实现定时删除数据库数据

2013年07月16日 ⁄ 综合 ⁄ 共 856字 ⁄ 字号 评论关闭

Quart是java环境下的任务调度系统,比起原始的数据库触发器标志和独立的调度器线程来说,这个开源的任务调度系统好用了不知道多少倍。最近部门的一个伙伴做了一个投票系统,投票是通过IP限制实现的,IP地址保存在数据库中,需要每天零时删除IP记录。

系统是Asp.net的,本来想弄个Timer,但是老觉得不怎么放心,所以暂时改成手动了。
 
最近投票弄完了闲下来研究了一下,发现有个.net环境下的Quart:Quart.Net
从官方主页可以看到这个东西是从Quart移植过来的,就Down下了试了一下,发现用着很顺手。
 
我使用的是1.03版的。
引用Quartz.dll,新建一个类MyJob,并实现接口IJob,在public void Execute(JobExecutionContext context)方法中添加对数据库数据删除的相关代码。
新建一个Global文件,在Application_Start中添加一下代码:
 

ISchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = factory.GetScheduler();
scheduler.Start();
JobDetail job = new JobDetail("MyJob", typeof(MyJob));
CronTrigger trigger = new CronTrigger();
trigger.CronExpressionString = "0 0 0 * * ?";
trigger.Name = "MyJob";
scheduler.ScheduleJob(job, trigger);

  

注意:因为定时任务依附于Application,所以不要忘记IIS的自动回收,20分钟就会回收一次。比较保险的办法就是再启动一个任务,间隔15分钟访问一次网站。
当然也可以修改IIS设置,不过不推荐。

抱歉!评论已关闭.