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