- Asp.net mvc-5
- IIS-8
- Hangfire 1.4.6
- Windows server 2012
之前,当执行时间少于30分钟时,定期的作业可以正常工作。但随着系统的增长,今天定期的作业的执行时间为40分钟,而不像以前的22-25分钟。我收到了2封电子邮件而不是一封(两封电子邮件的间隔大约为30分钟)。 现在我手动重新运行了作业,并注意到问题如下:
当定期的作业连续执行30分钟时,会启动定期作业的新实例,因此我将有两个实例同时运行,这就是我收到2封邮件的原因。现在,如果定期的作业执行时间少于30分钟(例如29分钟),我就不会遇到任何问题。但是,如果定期的作业执行时间超过30分钟,则出于某种原因,hangfire将启动新的作业。尽管当我访问hangfire仪表板时,在作业执行期间,我可以发现只有一个活动作业,但是当我监视我们的数据库时,我可以从sql Profiler中看到有两个作业正在访问数据库。这种情况发生在定期的作业开始后30分钟(在我们的例子中是17:30),这就是为什么我收到了2封电子邮件,这意味着在后台运行了2个定期作业而不是一个。
请问有人能够给一些建议吗?如何避免Hangfire在当前定期作业执行超过30分钟时自动启动新的定期作业? 谢谢。
InvisibilityTimeout
属性已被标记为过时。有没有替代方案?如何处理超时? - YogiOracleStorageOptions
的问题:我没有使用InvisibilityTimeout
,但后台任务在30分钟后重试了!! 我使用HF 1.7.28。 - Alexander