社区
C#
帖子详情
如何延长web应用程序的存活时间,以保证httpmodule里定时任务能一直执行
ff167
2009-06-09 09:58:59
加精
在httpmodule里写了一段代码,主要是通过timer定时执行任务。
如果页面长时间没人访问了,web应用程序被回收了,这个定时执行的任务就挂掉了。
有没有办法能将这个回收的时间延长,比如说调成24小时?以保证web定时任务的执行。
...全文
342
66
打赏
收藏
如何延长web应用程序的存活时间,以保证httpmodule里定时任务能一直执行
在httpmodule里写了一段代码,主要是通过timer定时执行任务。 如果页面长时间没人访问了,web应用程序被回收了,这个定时执行的任务就挂掉了。 有没有办法能将这个回收的时间延长,比如说调成24小时?以保证web定时任务的执行。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
)
这种方式适用于需要在ASP.NET
应用程序
中
执行
轻量级
定时任务
的场景。不过需要注意的是,这种方法依赖于
应用程序
保持运行状态,一旦
应用程序
停止或重启,
定时任务
也会随之停止。对于更复杂的需求,建议考虑使用更专业...
Http
Module
和
http
Handler学习例子
通过深入理解
Http
Module
和
Http
Handler的工作原理,我们可以更好地优化
应用程序
性能,实现复杂的业务需求。博客上的学习资料会进一步详细解释这些概念,并提供实践示例,帮助你轻松掌握这两个核心组件。
Register
Http
Module
注册
Http
Module
`Register
Http
Module
`方法是用于动态注册
Http
Module
的一种技术,这使得我们能够在不修改
Web
.config配置文件的情况下,实现
Http
Module
的添加和管理。
Http
Module
本身是一种特殊的类,它继承自`System.
Web
....
采用
Http
Module
技术进行以Ajax 方式的客户端回调处理类库源代码
C#是一种面向对象的编程语言,非常适合.NET Framework,尤其适合构建
Web
应用程序
。VS2005是微软的集成开发环境(IDE),提供了编写、调试和部署C#应用的强大工具。 5. **示例和SlideShow程序** 提供的几个Ajax回调...
ASP.NET架构详解
Http
Handler和
Http
Module
高清PDF文字版
ASP.NET是微软开发的一种用于构建
Web
应用程序
的框架,它提供了丰富的功能和工具,使得开发者能够高效地构建动态网站和
Web
服务。在这个主题中,我们将深入探讨ASP.NET架构中的两个关键组件:
Http
Handler和
Http
Module
...
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章