ASP.Net定时任务执行
原料:
System.Timers.Timer():通过.NET Thread Pool实现的,轻量,计时精确,对应用程序、消息没有特别的要求;缺点是不支持直接的拖放,需要手工编码。
Timer的主要属性:
1、Interval:引发Elapsed事件的间隔;
2、Elapsed:达到间隔发生的事件;
3、Enabled:指示Timer是否应引发Elapsed事件;
设计:
一、TaskBase,任务基类
1、字段:
a、TimeMode,任务类型分为周期型和时刻型;
b、LastStartTime
2、属性:
a、NextStartTime,只读属性
if (this.TimeMode == 0)
{
if (this.LastStartTime == DateTime.MinValue)
{
return DateTime.MinValue;
}
return this.LastStartTime.AddSeconds((double)this.MinPeriod);
}
if (this.LastStartTime == DateTime.MinValue)
{
return this.TheFixedNextStartTime;
}
return this.LastStartTime.AddDays(1.0).Date.AddHours((double)this.Hour).AddMinutes((double)this.Minute);
b、TheFixedNextStartTime,只读属性
if (this._theFixedNextStartTime == DateTime.MinValue)
{
this._theFixedNextStartTime = DateTime.Today.AddHours((double)this.Hour).AddMinutes((double)this.Minute);
if (((SystemStartTime.Hour * 100) + SystemStartTime.Minute) > ((this.Hour * 100) + this.Minute))
{
this._theFixedNextStartTime = this._theFixedNextStartTime.AddDays(1.0);
}
}
return this._theFixedNextStartTime;
3、方法:
1、Execute:任务的具体执行
2、Run:任务运行
this.LastStartTime = DateTime.Now;
this.Execute();
二、TaskMonitor:任务监控
1、方法
a、Execute:Timer.Elapsed事件
if (TimeMode == 1)
{
flag = DateTime.Now >= base2.NextStartTime;
}
else
{
flag = ((base2.TickCount == 0) && (base2.LastStartTime == DateTime.MinValue));
if (!flag)
{//定时器的运行间隔和任务运行间隔的比较
base2.TickCount += CheckPeriod;
flag = base2.TickCount >= base2.MinPeriod;
}
if (flag)
{
base2.TickCount = 0;
}
}
if (flag)
Thread.RunMethod(new ThreadStart(base2.Run));
ASP.Net定时任务执行的更多相关文章
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler定时器
在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个东东. .NET Framework有自 ...
- [转]推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler
在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个东东. .NET Framework有自 ...
- C#/ASP.NET定时任务执行管理器组件–FluentScheduler定时器
必须JobManager初始化 方式1: public void Start() { JobManager.AddJob(() => FetchingDa ...
- 转载MSDN 在ASP.NET 中执行 URL 重写
转载文章原网址 http://msdn.microsoft.com/zh-cn/library/ms972974.aspx 摘要:介绍如何使用 Microsoft ASP.NET 执行动态 URL 重 ...
- Spring整合Quartz定时任务执行2次,Spring定时任务执行2次
Spring整合Quartz定时任务执行2次,Spring定时任务执行2次 >>>>>>>>>>>>>>>&g ...
- 解决spring定时任务执行2次和tomcat部署缓慢的问题
spring定时任务执行2次 问题重现和解析 最近使用quartz定时任务框架,结果发现开发环境执行无任何问题,部署到服务器上后,发现同一时间任务执行了多次.经过搜索发现是服务器上tomcat的配置文 ...
- spring 定时任务执行2次
eclipse 上定时任务执行没有问题,生产环境可以看到定时任务同时执行了2次,排除代码原因,网上找了些资料,最后发现是tomcat的原因, Host 节点中有一个appBase 属性指向了webap ...
- Windows下Kettle定时任务执行并发送错误信息邮件
Windows下Kettle定时任务执行并发送错误信息邮件 1.首先安装JDK 2.配置JDK环境 3.下载并解压PDI(kettle) 目前我用的是版本V7的,可以直接百度搜索下载社区版,企业版收费 ...
- Spring task定时任务执行一段时间后莫名其妙停止的问题
前因: 我写了一个小项目,主要功能是用Spring task定时任务每天定时给用户发送邮件.执行了几个月一直没有问题,前几天,莫名其妙的突然不再发送邮件了. 只好花费一些时间来查看到底是什么原因造成的 ...
随机推荐
- jQuery技术内幕预览版.pdf2
第二章 构造jQuery对象 jQuery对象是一个类数组对象,含有连续的整型属性.length属性和大量的jQuery方法,$()是jQuery()的缩写 构造函数jQuery() 如果调用构造函数 ...
- Java web.xml加载顺序
web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener&g ...
- [ZETCODE]wxWidgets教程一:介紹
本教程原文链接:http://zetcode.com/gui/wxwidgets/introduction/ 翻译:瓶哥 日期:2013年11月26日星期二 邮箱: 414236069@qq.com ...
- 【解决】笔记本发射WiFi
这个百度一下一大堆 .. 不过还是希望自己总结一发适合自己的 (*^__^*) 废话不多说,开始 基于几个bat (1)CreateWlan.bat netsh wlan set hostednet ...
- python爬虫学习(2)__抓取糗百段子,与存入mysql数据库
import pymysql import requests from bs4 import BeautifulSoup#pymysql链接数据库 conn=pymysql.connect(host= ...
- hdoj 1869 六度分离【最短路径求两两边之间最长边】
六度分离 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- rman进行备份、恢复
rman备份可以很复杂,但学习需要由浅入深,下面是最常见的几种备份.恢复方式. 备份数据的路径与大小: SQL> show parameter DB_RECOVERY_FILE_DEST NA ...
- 6步骤实现CentOS系统环境精简优化
6步骤实现CentOS系统环境精简优化 发布时间:2014-11-03 14:59:27 编辑:AHLinux.com 第一步.删除不必要的自带软件包yum remove Deployment_G ...
- 利用图片延迟加载来优化页面性能(jQuery)
图片延迟加载也称懒加载,常用于页面很长,图片很多的页面,以电子商务网站居多,比如大家常上的京东,淘宝,页面以图居多,整个页面少说几百K,多则上兆,如果想一次性加载完成,不仅用户要哭了,服务器也得哭了. ...
- linux进程间通讯-System V IPC 信号量
进程间通信的机制--信号量.注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物.有关信号的很多其它内容,能够阅读我的还有一篇文章:Linux进程间通信--使用信号.以下就进入信号量的 ...