asp.net 定时间点执行任务的简易解决办法
这里的定时间点执行任务,指的是每天的某个时间执行一项任务。
比如每天凌晨七点的时候email发送一次报表。
这里首先想到的就是利用 Global.asax 文件来实现, 以下Global文件的内容。
<%@ Application Language="C#" %>
<%@ Import Namespace="System.Threading" %>
<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) {
//这里写你的任务逻辑
}
</script>
最新文章
- smarty 模板的入门使用
- Java多线程14:生产者/消费者模型
- Java SWT 做计算器。
- C#窗体截屏,简单例子
- 【BZOJ】【1046】/【POJ】【3613】【USACO 2007 Nov】Cow Relays 奶牛接力跑
- iOS开发者如何提高自己的水平(转)
- (转载)MS SQL Server 未公开的加密函数有哪些?
- 导入旧版本Android项目时的“Unable to resolve target ‘android
- HDOJ 1018 Big Number(大数位数公式)
- [C#基础] 委托
- .net 配置文件 分析 EntityName 时出错
- 自调用匿名函数和js的Module模式
- unity最基本操作
- 题解-PKUWC2018 Minimax
- MyElipse10添加Git
- .NET Framework 系统版本支持表
- Oracle与MySQL的SQL语句区别
- 【HAOI2011】problem b
- List<;String>; bikeList = Arrays.asList(bikeuuids);
- UVA10590 Boxes of Chocolates Again
热门文章
- PostgreSQL on Linux 最佳部署手册
- JS中event.preventDefault()取消默认事件能否还原?
- x-forwarded-for之深度挖掘
- Android手掌抑制功能的实现
- elasticsearch中的filter与aggs
- pig笔记
- 在Dell XPS 13安装WIN10和ubuntu双系统
- Linux——CentOS 6.3下PostgreSQL 的安装与配置
- The user specified as a definer (&;#39;root&;#39;@&;#39;%&;#39;) does not exist
- jumpserver-v0.5.0 应用图解