如何让asp.net应用程序定时自动执行代码
asp.net程序一般是当用户请求一个Page,或者请求一个WebService的时候,才会执行一段代码,如果我们希望让程序定时自动执行代码,但是又不增加新的应用程序,应该怎么做呢?
首先,给你的web应用程序,添加一个“Global.asax”文件,这个类里面默认有一个“Application_Start”,我们就在这个方法里面添加定时程序的逻辑代码。这样,只要有一个人访问了这个web应用,就会启动这个定时程序。
为了方便我们对定时程序的管理,我们单独编写一个类,专门用于控制定时程序。这个类中用的核心对象是System.Timers.Timer。下面说一下这个类设计的基本思路:ExecuteTask是一个公共的事件对象,以后调用者可以利用它来添加回调函数。_task是这个类型的唯一静态实例,调用者可以用Instance()方法读取它。_timer就是实现定时运行的对象,Interval是运行的间隔时间。
public class Time_Task
{
public event System.Timers.ElapsedEventHandler ExecuteTask;
private static readonly Time_Task _task = null;
private System.Timers.Timer _timer = null;
private int _interval = 1000;
public int Interval
{
set
{
_interval = ;
}
get
{
return _interval;
}
}
static Time_Task()
{
_task = new Time_Task();
}
public static Time_Task Instance()
{
return _task;
}
public void Start()
{
if(_timer == null)
{
_timer = new System.Timers.Timer(_interval);
_timer.Elapsed += new System.Timers.ElapsedEventHandler(_timer_Elapsed);
_timer.Enabled = true;
_timer.Start();
}
}
protected void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if(null != ExecuteTask)
{
ExecuteTask(sender, e);
}
}
public void Stop()
{
if(_timer != null)
{
_timer.Stop();
_timer.Dispose();
_timer = null;
}
}
}
有了这个类型,我们可以在Application_Start方法中轻松的实现定时了。
protected void Application_Start(object sender, EventArgs e)
{
Time_Task.Instance().ExecuteTask += new System.Timers.ElapsedEventHandler(Global_ExecuteTask);
Time_Task.Instance().Interval = 1000 * 60;//表示间隔1分钟
Time_Task.Instance().Start();
}
void Global_ExecuteTask(object sender, System.Timers.ElapsedEventArgs e)
{
//在这里编写需要定时执行的逻辑代码
}
需要注意的是,当你重新部署web应用的时候,比如更新了DLL文件,或者修改了web.config文件,就会中止这个定时程序,需要有人再次请求Page,才能把它启动起来。
如何让asp.net应用程序定时自动执行代码相关推荐
- Linux中的定时自动执行功能(at,crontab)
Linux中的定时自动执行功能(at,crontab) 概念 在Linux系统中,提供了两种提前对工作进行安排的方式 at 只执行一次 crontab 周期性重复执行 通过对这两个工具的应用可以让我们 ...
- SQL server 定时自动执行SQL存储过程
当一个存储过程是为了生成报表,并且是周期性的,则不需要人工干预,由SQL作业定时自动执行些SQL存储过程即可. 本示例,假设已需要定时执行的存储过程为:Pr_test 工具/原料 SQL Server ...
- 在SQL server中如何定时自动执行存储过程
在SQL server中如何定时自动执行存储过程 1.首先开启sql代理服务 2.打开sqlserver软件 3.拉开SQL Server 服务菜单 4.右键作业,点击新增作业 5.在一般中添加名称和 ...
- Python在程序退出前执行代码
文章目录 问题描述 解决方案 注册函数 装饰器 参考文献 问题描述 在程序退出前执行代码 解决方案 使用内置库 atexit 注册程序退出前要执行的函数,即使程序崩溃,都会执行 注册函数 import ...
- MYSQL 定时自动执行任务
MYSQL5.1开始支持EVENT功能,类似Oracle和MSSQL的定时任务job功能.有了这个功能之后我们就可以让MySQL自动的执行存储过程来实现数据汇总等功能了,不用像以前哪样手动操作完成了. ...
- mysql 手动执行event_MYSQL 定时自动执行EVENT
MySQL从5.1开始支持EVENT功能,类似Oracle和MSSQL的定时任务job功能.有了这个功能之后我们就可以让MySQL自动的执行存储过程来实现数据汇总等功能了,不用像以前哪样手动操作完成了 ...
- mysql 自动执行语句_MYSQL 定时自动执行任务
MYSQL5.1开始支持EVENT功能,类似Oracle和MSSQL的定时任务job功能.有了这个功能之后我们就可以让MySQL自动的执行存储过程来实现数据汇总等功能了,不用像以前哪样手动操作完成了. ...
- Windows定时自动执行bat脚本命令
假设,我需要在8:00定时执行autoExec.bat脚本. 那么,我在cmd创建一条命令即可. schtasks /create /tn "MyNBA" /tr D:\test\ ...
- java web 启动时执行_java Web 启动时自动执行代码的几种方式
Web容器启动后执行代码的几种方式,其执行顺序为:4===>5===>1===>2===>3,即指定init-method的Bean开始执行,接着实现spring的Bean后置 ...
最新文章
- 使用ssh工具链接mysql_mycli辅助工具-更方便得通过ssh tunnel连接线上MySQL
- 废旧光盘手工小制作_佳味家味浓 丨佳人美食手工零食课堂:咸蛋黄牛轧糖夹心小饼干制作活动...
- 陌陌财报双双超预期,什么才是它的基本盘?
- Jenkins转换成中文(Jenkins汉化)
- java list 拆分_Java面试题怎么确保一个集合不能被修改?
- OpenStack Juno系列之计算节点搭建
- IIC通信---EEPROM24C02---STMF4
- Android4.0的Alertdialog对话框,设置点击其他位置不消失
- XML解析技术简介——(一)
- Mysql约束 笔记
- nlog自定义文件名
- java正则表达式验证_Java中的正则表达式电话号码验证
- 设置将Maven的jar包发布到lib
- freeSWITCH中动态加载模块
- 摩托罗拉里程碑2刷android 2.3.4
- 星际萤火|人民日报:IPFS将带来无盗版网络时代?
- 创建Web站点的欢迎页面
- mysql解压版id是什么_mysq解压版安装(windos 7 10)
- 函数平移口诀_三角函数平移伸缩变换口诀是什么
- swagger支持中英文
热门文章
- C和C++循环链表的设计与实现
- C++ Multimaps
- pandas.DataFrame.iloc的使用
- B03_NumPy创建数组(numpy.empty,numpy.zeros,numpy.ones)
- 5.单行函数,多行函数,字符函数,数字函数,日期函数,数据类型转换,数字和字符串转换,通用函数(case和decode)
- 8.Boost之unordered_set
- 配置DispatcherServlet
- Oracle分组函数
- 你该认识这样的Linux_shell之循环控制
- 软件需求和结构_软件体系结构