我在我的web应用程序中运行了一个计时器。每次应用程序启动时,都会创建计时器。问题是应用程序池在空闲时间结束后也会结束计时器。下一个请求会导致应用程序池开始备份并创建新的定时器。计时器,应用程序池超时
无论如何要保持定时器重置?
我在我的web应用程序中运行了一个计时器。每次应用程序启动时,都会创建计时器。问题是应用程序池在空闲时间结束后也会结束计时器。下一个请求会导致应用程序池开始备份并创建新的定时器。计时器,应用程序池超时
无论如何要保持定时器重置?
这是一个我看到很多的问题。简短的答案是否定的,很长的答案是,即使您定期轮询网站,它最终还是会回收应用程序池。
如果需要做这样的后台工作,并在ASP.NET中嵌入,你必须创建一个强大的工作队列,不会因为它会发生中断或崩溃而中断。无论如何,对于长时间运行的流程来说,这只是一个好设计这可能看起来像很多工作,但简单的设计可能会让你走得很远。
推荐的方法是将该代码放入单独的Win32服务中,因为此类工作负载的性质在基于REST的体系结构中不太合适。
如果你需要的是定期检查,那么它可能是罚款只是具有外部脚本轮询的网站,但它是处理定时器的粗暴的方式。
另一个问题(stackoverflow只会让我每20分钟提问一个问题):我在监视应用程序生命周期事件的Web应用程序上有健康状况监视。每次Web应用程序编译,启动和关闭时,它都会记录一个事件。 minInterval设置为0. 问题有时会存在重复事件。举一个例子,刚才有3个编译开始和编译完成事件同时发生。它不应该只记录每一个? – user666423 2011-03-22 18:18:58
真的是二十分钟狗的年龄了吗? ;) – 2011-03-22 18:23:00
看到这个更好的方式来实现这样的事情:http://stackoverflow.com/questions/542804/asp-netbest-way-to-run-scheduled-tasks – 2011-03-22 18:07:53
在启动时初始化定时器有什么问题? – 2011-03-22 18:08:08
问题是计时器设置为每天凌晨3点运行。如果应用程序池在上午2:59:59回收(由于空闲),计时器任务将无法运行。 – user666423 2011-03-22 18:11:58