当我登录服务器并打开仪表板时,它会显示过去下次执行的定期作业。它会在几秒钟内触发自动处理它们,但如果我不登录并打开仪表板,则不会触发定期作业。
看来Hangfire正在按预期运行并处理作业 没有我看它,它为什么不会触发?
答案 0 :(得分:3)
如果Hangfire服务器在 Web应用程序中运行,这是一个常见问题。由于用户不活动,Web服务器已停止应用程序,因此不会触发作业。
默认情况下,Web应用程序中的Hangfire Server实例不会 开始直到第一个用户访问您的网站。更有甚者,有一些 会在一段时间后将您的Web应用程序关闭的事件(我是 谈论闲置超时和不同的应用程序池回收事件)。 在这些情况下,您的重复任务和延迟的工作将不会 排队和排队的工作将不会被处理。
阅读文档以防止它:Making ASP.NET application always running。
另一种解决方案是将Hangfire服务器从Web应用程序迁移到控制台应用程序或Windows服务。