在ASP.NET中模拟Windows服务运行计划任务

本文介绍了一种无需依赖Windows服务即可在ASP.NET中运行计划任务的方法。通过利用IIS服务器的回调机制,即使在虚拟主机环境下也能有效执行定时任务,如发送提醒邮件、清理操作等。

导言

     ASP.NET如何在不依赖Windows服务的情况下运行计划任务呢?我们常常需要执行一些维护任务或计划任务,例如在网站上向用户发送提醒邮件等。ASP.NET并不能持续运行一段程序或计划任务,我们可以利用Windows服务来运行计划任务或时钟守护工作。但是,在虚拟主机上我们并不能部署Windows服务,或许你可以购买专用主机来实现这个功能,不过这对普通用户来说太奢侈了。计划任务能帮助我们向用户发送提醒邮件,向管理员发送维护报告,执行清理操作等,是一个非常方便的功能,我会向大家展示一个微妙的方法来执行计划任务,只使用ASP.NET而不需要依赖Windows服务。该解决方案能运行在任何虚拟主机上,无需购买专门的服务器。

如何运作

     首先我们需要能在ASP.NET中持续运行并执行回调的对象。IIS服务器是持续运行的,我们需要它频繁回调,来查看列队中是否有任务需要执行。服务器在一下情况执行回调。

  • 一个网页被访问时
  • Application启动时
  • Application停止时
  • Session启动、结束或超时时
  • Cache项目超时时

     网页被访问是随机的,如果没有人访问网页,等待执行的工作可能永远不被执行。此外,访问请求的时间很短,而且需要尽快完成。如果在此时执行计划任务,被访问的页面需要很长的时间才能显示出来,这会导致不良的用户体验。显然,这个方案并不太好。

转载于:https://www.cnblogs.com/jesonray/archive/2009/02/27/1399849.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值