除非仪表板已打开,否则Hang​​fire不会处理重复的作业

时间:2017-05-19 15:31:52

标签: asp.net-mvc-5 hangfire

当我登录服务器并打开仪表板时,它会显示过去下次执行的定期作业。它会在几秒钟内触发自动处理它们,但如果我不登录并打开仪表板,则不会触发定期作业。

看来Hangfire正在按预期运行并处理作业 没有我看它,它为什么不会触发?

1 个答案:

答案 0 :(得分:3)

如果Hangfire服务器在 Web应用程序中运行,这是一个常见问题。由于用户不活动,Web服务器已停止应用程序,因此不会触发作业。

  

默认情况下,Web应用程序中的Hangfire Server实例不会   开始直到第一个用户访问您的网站。更有甚者,有一些   会在一段时间后将您的Web应用程序关闭的事件(我是   谈论闲置超时和不同的应用程序池回收事件)。   在这些情况下,您的重复任务和延迟的工作将不会   排队和排队的工作将不会被处理。

阅读文档以防止它:Making ASP.NET application always running

另一种解决方案是将Hangfire服务器从Web应用程序迁移到控制台应用程序或Windows服务。