导致定时器失效_C# 因IIS回收导致定时器失效的解决方案
一、問題描述
Bs項(xiàng)目中用Quartz功能執(zhí)行一個(gè)定時(shí)任務(wù)(每隔5分鐘執(zhí)行一個(gè)Job),正常情況,Quartz定時(shí)任務(wù)會(huì)5分鐘執(zhí)行一次,但I(xiàn)IS程序池閑置
超時(shí)默認(rèn)為20分鐘,造成的結(jié)果是:定時(shí)任務(wù)只執(zhí)行了4次。那么怎么解決程序池閑置超時(shí)引進(jìn)Quartz定時(shí)任務(wù)停止執(zhí)行問題?
二、解決方案
方案一:設(shè)置IIS默認(rèn)閑置超時(shí)為1740(跟程序池默認(rèn)回收時(shí)間1740)
方案二:IIS服務(wù)器規(guī)定的時(shí)間內(nèi),定時(shí)向服務(wù)器取一次數(shù)據(jù)
三、方案介紹
1)方案一:設(shè)置IIS默認(rèn)閑置超時(shí)為1740(跟程序池默認(rèn)回收時(shí)間1740)
通過設(shè)置程序池--高級設(shè)置--模型設(shè)計(jì)--閑置超時(shí),設(shè)置為1740(29小時(shí))
原理:改變IIS程序池閑置超時(shí)時(shí)間,設(shè)置為1740(29分鐘),保證不會(huì)出現(xiàn)閑置超時(shí)而執(zhí)行的資源清理
前提:需保證這個(gè)網(wǎng)站一天有一個(gè)訪問量就不會(huì)觸發(fā)到iis閑置超時(shí)而執(zhí)行的資源清理
2)方案二:IIS服務(wù)器規(guī)定的時(shí)間內(nèi),定時(shí)向服務(wù)器取一次數(shù)據(jù)
那就是保持有一臺(tái)機(jī)器開著,在這個(gè)Application下寫一個(gè)文件,用JavaScript每隔幾分鐘(小于程序池默認(rèn)閑置超時(shí)時(shí)間)就自我刷新一下,
瀏覽器一直開著,這樣就強(qiáng)制讓它處于被訪問的狀態(tài)。但這個(gè)方法并不穩(wěn)定
原理:強(qiáng)制讓它處于被訪問的狀態(tài),不會(huì)出現(xiàn)閑置導(dǎo)致問題
前提:保證瀏覽器開著,js設(shè)置定時(shí)方法設(shè)置為小于閑置超時(shí)時(shí)間
PS:
解決方案介紹來自這個(gè)網(wǎng)址:http://blog.csdn.net/zhangquanok/article/details/16807603
總結(jié)
以上是生活随笔為你收集整理的导致定时器失效_C# 因IIS回收导致定时器失效的解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript兼容性:IE6/7关
- 下一篇: c调用java jar_C#调用java