Hangfire如何处理应用程序域重启?

时间:2015-08-23 20:30:35

标签: asp.net asp.net-mvc backgroundworker appdomain hangfire

在我的ASP.NET MVC应用程序中,我将运行后台任务,有时持续约10分钟。我已经阅读了这个主题并看到应用程序域有时会重新启动,因此删除了我的主题。

因此我找到了一些解决方案。我找到的主要解决方案是Hangfire。我知道它会在失败等情况下重新启动作业,但是他们会以某种方式“绕过”应用程序域重新启动,还是只在这种情况下重新启动作业?

1 个答案:

答案 0 :(得分:5)

  

我找到的主要解决方案是Hangfire。我明白了   当他们失败等时重新开始工作,但他们是否会绕过"绕过"该应用程序   以某种方式重新启动域名,还是在这种情况下重新启动作业?

不,他们不会绕过app域重启 - 没有什么可以绕过它。引自documentation

  

Hangfire会保留后台作业和其他相关信息   持久存储中的处理。持久性有帮助   后台作业在应用程序重启时生存,服务器重启,   这是执行后台作业之间的主要区别   使用CLR的线程池和Hangfire。不同的存储后端是   支撑。

因此,当您将新任务排入队列时,首先要将其存储在服务器上的某个持久存储中,而不将其保留在内存中。这样,如果应用程序域死亡,则可以在以后从此持久存储中读取和恢复该任务。