ASP.Net中定时执行任务的方法

发布时间: 2021-12-22  
这里的定时执行任务,指的是每天或者每个月的某个时间执行一项任务。思路有很多,如果只是对数据库数据作定时校验或者重置标识,加之又有足够的服务器配置权限,那么可以直接在SQL
Server里建立维护任务,交给SQL Agent服务定期执行就好了。如果没有足够的服务器配置权限,也可以通过下面的方法来完成操作。

通过Application_Start事件来判断时间间隔并调用相关的业务逻辑

如果要处理的业务比较复杂,建议数据操作尽量写在存储过程中,然后写相应的调用方法来实现。这里以每天凌晨email发送一次报表为例

这里首先想到的就是利用 Global.asax 文件来实现, 以下Global文件的内容。

Copy to Clipboard引用的内容:

<%@ Application Language=”C#” %> 
<%@ Import Namespace=”System.Threading” %> 

<mce:script runat=”server”><!–

//这里使用静态保持对这处Timer实例的引用,以免GC 
private static System.Threading.Timer timer = null; 

protected void Application_Start(object sender, EventArgs e) { 
//计算现在到目标时间要过的时间段。 
DateTime LuckTime = DateTime.Now.Date.Add(new TimeSpan(7, 0, 0)); 
TimeSpan span = LuckTime – DateTime.Now; 
if (span < TimeSpan.Zero) { 
span = LuckTime.AddDays(1d) – DateTime.Now; 

//按需传递的状态或者对象。 
object state = new object(); 
//定义计时器 
timer = new System.Threading.Timer( 
new TimerCallback(CertainTask), state, 
span, TimeSpan.FromTicks(TimeSpan.TicksPerDay)); 
 
protected void Application_End(object sender, EventArgs e) { 
//结束时记得释放 
if (timer != null) { timer.Dispose(); } 
 
//这里是指定时间执行的代码,必须是静态的。 
private static void CertainTask(object state) { 
//这里写你的任务逻辑 
// –></mce:script>
复制代码
 
当然,你也可以通过WebService来实现业务逻辑
 
void Application_Start(object sender, EventArgs e)
{

// 在应用程序启动时运行的代码
System.Timers.Timer myTimer = new System.Timers.Timer(60000);
myTimer.Elapsed += new System.Timers.ElapsedEventHandler
(OnTimedEvent);
myTimer.Interval = 60000;
myTimer.Enabled = true;
}
private static void OnTimedEvent(object source,
System.Timers.ElapsedEventArgs e)
{

localhost.WebService mysrv = new localhost.WebService();
mysrv.CertainTask();     //调用相应的方法
}
复制代码
 
 
 
 
 

网站维护公司有哪些

互联网发展到今天,企业主们对网站维护也越来越重视,那么如何选择网站维护公司来进行网站维护呢?米果下面和您说下挑选技巧: 1、网站维护公司…

网站标题最新书写规范,切……

众所周知,网页标题,通常是搜索引擎关注的重点,也是SEOer们优化的核心方向!从建站前期到后期调整,首页、栏目页、专题页、详情页等标题(关键词、…

谈谈:网站排名点击细节那……

任何做SEO的都知道,要用白帽,不用黑帽。但是你看着自己老老实实的用白帽结果排名在那稳如泰山,竞争对手用着某些不能见光的手法,排名更坐火箭一…

ABOUT US

米果科技是一家高速成长的互联网全网营销解决方案提供商,致力于将先进的全网营销经验融入到客户推广过程中,为企业提供网络信息化、协同办公及商务系统、精准营销、全案策划、顾问定制等多元化的互联网全方位服务。

CONTACT US

400-000-6930   +86-010-67011800

北京市朝阳区北湖渠路15号京环大厦6层

vip@migal.cc

MIGAL CHINA. All rights reserved.

米果科技 版权所有 | 资深全网营销解决方案提供商

京ICP备08002342号-19

微信扫码咨询Bruce
专线 15801168100

微信扫码咨询Sam
专线 13051800660