IIS定时器失效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS定时器失效相关的知识,希望对你有一定的参考价值。

我是在Global类中有一个List T,TaskTimer是继承于Timer类,在业务层有些函数来加入定时器 TaskTimer t=new TaskTimer(); ... T.add(t); 这样来定时执行,我想如果有对t的引用,那么就不会被回收掉吧? 在vs2005中运行的时候一点问题也没得,在iis5.0下也没得问题 可是一挂到IIS6.0上就出现问题了,我看了一下,在挂上去1个小时左右,就会调用Application_end。。。之后T数目为0了。。。 网上查了说是回收了,也做了一个自己访问自己网页的办法,但是不行。。。 后来我把IIS设置中的,空闲多少时间关闭工作进程给勾掉了,这样倒是可以计时了,但是过不了多久,就出现网站不能访问了,需要重启服务器才行。。。 小弟为这个东西弄得快崩溃了。。。不知如何解决 在global类中的List 是静态的 public static System.Collections.Generic.List globalTimer; zwsh_0大大没听懂我的意思,我是在Global类中定义了一个List,静态的;然后把我的定时器add到这个LIst中去,但是挂到IIS上的时候,出现了无法计时的情况,网上说是由于回收的情况。。。但是我还是没解决

参考技术A web开发中不要用Timer,而是使用Quartz.net这种专门的定时任务框架。

vue keep-alive中页面缓存后destroyed失效-如何关闭定时器

页面中设置了定时器,如果组件销毁是没有关闭定时器,他还会一直执行,会非常耗性能,所以需要及时关闭定时器。 

activated,deactivated生命周期的用法

关闭定时器

vue项目中,正常情况下,我们在生命周期 destroyed 中关闭即可,一旦页面中使用了keep-alive 进行缓存,此时 destroyed 会失效。需要在 deactivated 钩子函数去关闭,他是 keep-alive 特有的钩子函数。

没有缓存页面

destroyed(){
	clearInterval(this.timer)
}

keep-alive 缓存过的页面

// 开启定时器
activated(){
	this.start()
},
// 关闭定时器
deactivated(){
	clearInterval(this.timer)
}

注意:只有当组件在<keep - alive >内被切换,才会有activated和deactivated这两个钩子函数

 

以上是关于IIS定时器失效的主要内容,如果未能解决你的问题,请参考以下文章

iOS - scrollView与NSTimer的失效问题详解

vue keep-alive中页面缓存后destroyed失效-如何关闭定时器

Quartz定时任务和IIS程序池闲置超时时间冲突解决方案

定时Job在IIS中潜在危险-IIS 定期回收

WIN10定时关机失效?

react-native android模拟器或真机上定时器setInterval和setTimeout失效