Hang-fire 一次只执行一项工作
Hang-fire only executing one job at a time
我们有一个 运行 两个多小时的预定工作。现在其他计划的作业正在添加为 Queued ,为什么 Hangfire 不是 运行 该作业。我将 worker count 设置为 3,但它仍然没有执行。
HangFire 详情:
安装于:Windows 2018 R2
Hangfire 版本:1.6.22
使用的数据库:PostgreSQL
提前致谢。
添加更多信息,这可能会对其他人有所帮助。
后来我发现我的预定工作是 运行 多次(每 30 分钟一次)。我所有的 3 个工人都在执行那个单一的工作,并且没有空闲的工人来执行挂起的工作。
看起来这个问题与这个 hangfire 错误有关#Bug:130 , #BUG:1197
此修复有效:
new PostgreSqlStorageOptions()
{
//change this
InvisibilityTimeout = TimeSpan.FromHours(24)
});
但即使我将自动重试设置为 false(通过设置 Attempts = 0),它仍在重试计划的作业。即使在我设置日志事件 (LogEvents = true) 之后,它甚至没有记录重试。我只有在使用这个 LogEverythingAttribute
后才得到这个信息
[AutomaticRetry(Attempts = 0, LogEvents = true, OnAttemptsExceeded = AttemptsExceededAction.Fail)]
这是 Hangfire 中的另一个错误吗?
我关闭这个可能是 hangfire 的问题。
我们有一个 运行 两个多小时的预定工作。现在其他计划的作业正在添加为 Queued ,为什么 Hangfire 不是 运行 该作业。我将 worker count 设置为 3,但它仍然没有执行。
安装于:Windows 2018 R2
Hangfire 版本:1.6.22
使用的数据库:PostgreSQL
提前致谢。
添加更多信息,这可能会对其他人有所帮助。
后来我发现我的预定工作是 运行 多次(每 30 分钟一次)。我所有的 3 个工人都在执行那个单一的工作,并且没有空闲的工人来执行挂起的工作。
看起来这个问题与这个 hangfire 错误有关#Bug:130 , #BUG:1197
此修复有效:
new PostgreSqlStorageOptions()
{
//change this
InvisibilityTimeout = TimeSpan.FromHours(24)
});
但即使我将自动重试设置为 false(通过设置 Attempts = 0),它仍在重试计划的作业。即使在我设置日志事件 (LogEvents = true) 之后,它甚至没有记录重试。我只有在使用这个 LogEverythingAttribute
后才得到这个信息[AutomaticRetry(Attempts = 0, LogEvents = true, OnAttemptsExceeded = AttemptsExceededAction.Fail)]
这是 Hangfire 中的另一个错误吗?
我关闭这个可能是 hangfire 的问题。