0
点赞
收藏
分享

微信扫一扫

HangFire的IIS自动回收导致第一次访问慢和定时任务暂停的问题

网站启动后第一次访问往往会比较慢,网站启动后没有访问,过段时间iis会回收,请求再来的时候会和网站刚刚启动的时候一样,需要等待一段时间。

定时回收除了会出现上面的情况外,还会将后台任务回收掉,导致我们的后台任务终止执行,直到进来一个请求(网站内任意地址)任务启动,那么如果请求很久没来,这个任务将无法被启动,错过任务应该执行的档口。

解决方法1:可以通过调整自动回收的时间

解决方法2::设置不自动回收

解决方法3:通过配置IIS来实现预加载(即在资源被回收的情况下,通过一个链接来唤醒自身,首次访问的时候不会觉得卡顿,并且我们被回收掉的定时任务又会重新的启动起来

步骤一:操作路径:应用程序池 -> 网站对应程序池 -> 右键,高级设置 ->选择,启动模式 AlwaysRunning

HangFire的IIS自动回收导致第一次访问慢和定时任务暂停的问题_初始化

步骤二:​操作路径:网站 -> 对应网站 -> 右键,高级设置 ->选择,预加载已启用 True

HangFire的IIS自动回收导致第一次访问慢和定时任务暂停的问题_初始化_02

步骤三:​编辑配置,编写默认预加载请求

HangFire的IIS自动回收导致第一次访问慢和定时任务暂停的问题_初始化_03

在左上角配置节点选择system.webServer/applicationInitialization

节点选择:system.webServer/applicationInitialization

HangFire的IIS自动回收导致第一次访问慢和定时任务暂停的问题_解决方法_04

在集合中添加一个初始化请求地址(用于IIS初始化默认请求地址),添加完成后,点击配置界面右侧的应用按钮,并重启应用程序池和网站

HangFire的IIS自动回收导致第一次访问慢和定时任务暂停的问题_预加载_05


参考地址:

​​https://www.cnblogs.com/teamblog/p/6195078.html​​

官网文档:

​​https://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html​​

举报

相关推荐

0 条评论