社区
C#
帖子详情
如何延长web应用程序的存活时间,以保证httpmodule里定时任务能一直执行
ff167
2009-06-09 09:58:59
加精
在httpmodule里写了一段代码,主要是通过timer定时执行任务。
如果页面长时间没人访问了,web应用程序被回收了,这个定时执行的任务就挂掉了。
有没有办法能将这个回收的时间延长,比如说调成24小时?以保证web定时任务的执行。
...全文
382
66
打赏
收藏
如何延长web应用程序的存活时间,以保证httpmodule里定时任务能一直执行
在httpmodule里写了一段代码,主要是通过timer定时执行任务。 如果页面长时间没人访问了,web应用程序被回收了,这个定时执行的任务就挂掉了。 有没有办法能将这个回收的时间延长,比如说调成24小时?以保证web定时任务的执行。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
66 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
axwj1314
2010-08-01
打赏
举报
回复
好帖,最近也在做定时生成,但是没明白
tsmoon2009
2010-01-26
打赏
举报
回复
回帖是一种美德!每天回帖即可获得 10 分可用分!
laopiao2000
2009-06-12
打赏
举报
回复
学习中
AKULAKK
2009-06-11
打赏
举报
回复
可以在global中编码,当applicaton_end的时候把任务实例状态序列化到硬盘上
在application_start事件触发的时候,再把硬盘的实例反序列化到你的httpmodule中,即可实现无缝timer运作.
如果要考虑断电或者死机的情况,建议再做个定时器每隔5秒钟把你的任务实例序列化到硬盘上,这样至少可以保证最迟5秒内的数据完整性.
justin麒麟
2009-06-11
打赏
举报
回复
没明白问的是什么
xfreyes
2009-06-11
打赏
举报
回复
想法很诡异
yanm7788
2009-06-11
打赏
举报
回复
嗯 关注
biyaotian
2009-06-11
打赏
举报
回复
访问一下 就像递归一样
MasDn
2009-06-11
打赏
举报
回复
可以自己访问自己的网页啊
webclient
定时访问一下 就像递归一样
易企加_天马行空
2009-06-11
打赏
举报
回复
[Quote=引用 51 楼 wanghui0380 的回复:]
lz的专研精神让人佩服,但很明显的是方向上出了点问题
asp.net和基于iis和http协议的,那么其受iis应用程序池的控制,受http这个无连接协议的控制
如果单纯考虑http协议,http是无连接滴,又不能时时刻刻保证有人访问,那么可能的解决方法是 新开一个线程,然后在这个新线程的里去做你要做的事情,就能很好解决你最早的那个time out问题
但是asp.net同时受iis管控,asp.net的执行实际是在iis程序池里管控滴,相当于是…
[/Quote]
分析的有一定道理
你的代码好像没启动timer吧
建议你把timer和需要更新的静态变量放到同一个静态类里
然后在静态构造函数里去初始化timer的参数,以及start
这样,即使像这位仁兄说的重新开了一个进程,那么只要访问静态变量,都会启动timer的。
xudongdong_1990
2009-06-11
打赏
举报
回复
关注,顶!
xudongdong1990
2009-06-11
打赏
举报
回复
学习了,帮顶!
wanghui0380
2009-06-11
打赏
举报
回复
lz的专研精神让人佩服,但很明显的是方向上出了点问题
asp.net和基于iis和http协议的,那么其受iis应用程序池的控制,受http这个无连接协议的控制
如果单纯考虑http协议,http是无连接滴,又不能时时刻刻保证有人访问,那么可能的解决方法是 新开一个线程,然后在这个新线程的里去做你要做的事情,就能很好解决你最早的那个time out问题
但是asp.net同时受iis管控,asp.net的执行实际是在iis程序池里管控滴,相当于是应用程序池进程下的某个线程
而应用程序池是定时重启滴,不知道你观察过iis和进程的关系没有,如果有人访问某个站,iis会启动w3wp.exe去开启一个新的进程,同时去启动某个线程,并在线程里运行该站的实际代码。如果你仔细观察一下回收应用程序池时的进程状态,你回发现,在那一瞬间实际iis是重启开启了一个新的w3wp.exe进程,然后关闭原来w3wp.exe进程。现在就能很好解释你后面那个readonly的问题了,进程都已经变了,你认为那个readonly 还能起效吗?
所以:你实际要选择的事情是
1.要能脱离http无状态的限制,保证你时时刻刻运行
2.要能脱离iis管控,一直保持自己的进程
呵呵,再看这两个要求不是window serviecs是啥??
hangang7403
2009-06-11
打赏
举报
回复
up
thinkpi
2009-06-11
打赏
举报
回复
我也用的timer
wuyuleidi
2009-06-11
打赏
举报
回复
ding ~!
qiuzhengxiang
2009-06-11
打赏
举报
回复
up
Azrael_Art
2009-06-11
打赏
举报
回复
学习!
minioreo
2009-06-10
打赏
举报
回复
[Quote=引用 7 楼 vincent_utem 的回复:]
我也正在寻找同样问题的答案,我现在就是使用windowservice来做的。但是有个问题,如果我要定期更新一些静态变量呢?windowservice好像就不大好实现了,毕竟不是不同的内存空间,那该怎么办呢?
[/Quote]
可以用.net remoting来更新Windows Service里的变量达到通知目的。
骨头G
2009-06-10
打赏
举报
回复
关注中
加载更多回复(42)
net实现
定时任务
(Cache+
Http
Module
)
net实现
定时任务
(Cache+
Http
Module
)
Register
Http
Module
注册
Http
Module
Register
Http
Module
动态注册
Http
Module
ASP.NET架构详解
Http
Handler和
Http
Module
高清PDF文字版
本书详细讲解了ASP.NET请求流程.以及核心对象. ASP.NET架构详解
Http
Handler和
Http
Module
高清PDF文字. 我身边的ASP.NET工程师都看过这个啦
Http
Module
实例
Http
Module
实例
Http
Module
与
Http
Handler
Http
Module
与
Http
Handler! 值得下载看看!资源免费,大家分享!!
C#
111,120
社区成员
642,537
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章