一、問題描述
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
