Quartz定时任务和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
平时多记记,到用时才能看看,记录你的进步,分享你的成果