首页 新闻 会员 周边 捐助

Hangfire循环任务20分钟后停止,是什么原因?

0
[已解决问题] 解决于 2016-11-23 12:13

使用Hangfire循环任务时,在自己电脑上部署到iis上是可以的,但是在测试环境的服务器上执行20分钟后任务就停止了,不知道是什么原因,那位大神能解析一下。谢谢了。

RecurringJob.AddOrUpdate(() => CollectionController.GetCalendar(), "*/5 * * * *");

讨教的主页 讨教 | 菜鸟二级 | 园豆:224
提问于:2016-10-17 10:21
< >
分享
最佳答案
1

请问一下 你是不是iis 20分钟没人访问?

iis  默认是20分钟没人访问 就自动停止的 

奖励园豆:5
小眼睛老鼠 | 老鸟四级 |园豆:2731 | 2016-10-17 17:57

是的,20分钟没有访问。有什么解决方法吗?还有就是在我自己电脑上的也没有访问,却是可以一直执行的。难道是和系统还有IIS有关?

讨教 | 园豆:224 (菜鸟二级) | 2016-10-18 09:14

@讨教: 有2总解决方法 

一种是 延长重启时间

另外一种是 在endapplication事件中 给当前地址发一个请求 

让程序重新启动起来

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2016-10-19 11:29
其他回答(2)
0

IIS的应用程序池会定期回收,导致你的任务被终止,在应用程序池的高级设置里有:

回收——固定时间间隔:定期回收应用程序池;

进程模型——限制超时(分钟):默认情况下当进程限制达20分钟时回收。

将2个值设置为0可以解决这个问题,不过,实在是不建议你这样去做,这样会导致网站运行不稳定崩溃,如果需要执行长时处理任务,建议使用计划任务,或者Windows服务来进行托管。

 

猫探长 | 园豆:325 (菜鸟二级) | 2016-10-18 17:33

刚刚去看了你说的Hanfire是个任务调度器,挂掉之后可以恢复的,这样你可以根据实际需求把闲置超时时间调长一点,毕竟测试的访问频率比较低。

支持(0) 反对(0) 猫探长 | 园豆:325 (菜鸟二级) | 2016-10-18 17:51

@Krockey: 好的,谢谢了。

支持(0) 反对(0) 讨教 | 园豆:224 (菜鸟二级) | 2016-10-19 09:02
0
OriginalCobra | 园豆:37 (初学一级) | 2020-08-05 09:54

Making ASP.NET application always running

支持(0) 反对(0) OriginalCobra | 园豆:37 (初学一级) | 2020-08-05 09:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册