我对挂火作业有疑问。我的工作可能需要 10 分钟才能运行,即使我有该[AutomaticRetry(Attempts = 0)]
属性,这项工作似乎也无限期地重复。
如果我检查作业的结果,它看起来像是作业完成了,但在进入 Succeeded 状态之前似乎只有一秒钟,它会重新排队。
我认为这是不可见的重试功能,因为我可以看到该作业不会立即开始,而是任何时候都有更长的间隔。
我将hangfire pro与redis数据库一起使用。
我对挂火作业有疑问。我的工作可能需要 10 分钟才能运行,即使我有该[AutomaticRetry(Attempts = 0)]
属性,这项工作似乎也无限期地重复。
如果我检查作业的结果,它看起来像是作业完成了,但在进入 Succeeded 状态之前似乎只有一秒钟,它会重新排队。
我认为这是不可见的重试功能,因为我可以看到该作业不会立即开始,而是任何时候都有更长的间隔。
我将hangfire pro与redis数据库一起使用。
如果您使用 Redis 作为作业存储,则此行为可能是由Redis 中的Client Timeout引起的。默认情况下,它是关闭的,但是一些托管环境有自己的默认值。由于工作人员希望在执行后台作业后连接仍处于打开状态,因此长时间运行的作业可能会通过写入已关闭的套接字而导致异常。
redis.conf
您可以通过或简单地使用以下命令关闭此设置:
CONFIG SET timeout 0