我用quartz调度器创建了asp.net站点。该作业正在后台运行,站点上没有其他活动。
Quartz 调度程序每 30 分钟调度一次。
IIS启动后,Scheduler运行正常。
但一段时间后,Scheduler 停止运行(大约 1 小时)。
如果用户登录或查看仪表板时现场有一项或多项活动,则调度程序可以正常运行。
但当现场没有活动时,它就会停止运行。
当现场没有活动时,如何让我的调度程序始终保持活动状态?
P/s:我知道我的问题可能与其他问题重复。但我仍然问,因为我无法评论在其他问题的答案中提问。
Edit:
Day Running at: 7/14/2016 4:00:00 AM
--
Day Running at: 7/14/2016 4:30:00 AM
--
Day Running at: 7/14/2016 5:00:00 AM
--
Stopped running
--
Day Running at: 7/14/2016 2:00:00 PM
--
Day Running at: 7/14/2016 2:30:00 PM
--
Day Running at: 7/14/2016 3:00:00 PM
--
Stopped running
--
默认情况下,如果应用程序在一段时间内没有收到请求,IIS 将卸载您的应用程序。
您可以将 IIS 配置为从不卸载您的应用程序。IIS 卸载您的应用程序的原因有很多 - 请确保禁用所有这些原因。它位于应用程序池设置中,最好转到“高级设置”并仔细检查所有设置。
顺便说一句,如果您有一项后台作业需要按计划可靠地运行,那么除了 Web 应用程序之外,为什么不将其部署在 Windows 服务中呢? Web 应用程序最擅长处理传入请求,而不是运行计划作业。
UPDATE
在应用程序池的高级设置中查看这些:
- 进程模型/空闲超时和空闲超时操作
- 回收/定期时间间隔、请求限制、私有内存限制、虚拟内存限制
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)