ASP.Net中定时执行任务的方法
2010-06-02 13:34
555 查看
这里的定时执行任务,指的是每天或者每个月的某个时间执行一项任务。思路有很多,如果只是对数据库数据作定时校验或者重置标识,加之又有足够的服务器配置权限,那么可以直接在SQL Server里建立维护任务,交给SQL Agent服务定期执行就好了。如果没有足够的服务器配置权限,也可以通过下面的方法来完成操作。
通过Application_Start事件来判断时间间隔并调用相关的业务逻辑
如果要处理的业务比较复杂,建议数据操作尽量写在存储过程中,然后写相应的调用方法来实现。这里以每天凌晨email发送一次报表为例
这里首先想到的就是利用 Global.asax 文件来实现, 以下Global文件的内容。
Copy to Clipboard引用的内容:
当然,你也可以通过WebService来实现业务逻辑
通过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(); //调用相应的方法 }
相关文章推荐
- ASP.NET定时执行任务方法分享
- ASP.NET MVC计划任务实现方法(定时执行某个功能)
- ASP.NET 定时执行任务 global.asax 执行一段时间后停止
- 【ASP.NET 进阶】定时执行任务实现 (定时读取和修改txt文件数字内容,无刷新显示结果)
- 基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度
- Asp.net定时执行任务(定时器改良)
- asp.net web 服务器端全局定时执行任务
- ASP.NET后台定时执行任务
- 基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度
- ASP.Net定时任务执行
- asp.net中定时执行某个方法
- 【ASP.NET 进阶】定时执行任务
- ASP.NET 定时执行任务 global.asax
- ASP.NET 定时执行任务(定时器)
- Asp.net定时执行任务(定时器改良)
- ASP.NET如何定时执行任务
- 基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler
- ASP.NET 定时执行任务 global.asax
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler