我有使用Hangfire 1.6.2和Hangfire.MySql.NetCore 1.0.7的asp.net核心2.1应用程序 . 有一项工作,当它被排入第三次或第四次时,应用程序抛出此异常并关闭; An unhandled exception of type 'System.StackOverflowException' occurred in Hangfire.AspNetCore.dll 目前正在排队 . 其他后台工作也遵循这种模式 . 作业成功入队,并且在将作业激活到处理队列时抛出异常 . 这是一个在抛出异常之前出现的日志,这与激活作业的时间相同 . 这暗示了分布式锁定的一些问题;

Hangfire.MySql.MySqlDistributedLock:Trace: MySqlDistributedLock resource=JobQueue, timeout=00:00:30
Hangfire.MySql.MySqlDistributedLock:Trace: Release resource=JobQueue
Hangfire.MySql.MySqlDistributedLock:Trace: MySqlDistributedLock resource=job:16:state-lock, timeout=00:15:00
Hangfire.MySql.MySqlDistributedLock:Trace: Acquire resource=job:16:state-lock, timeout=00:15:00
Hangfire.MySql.MySqlWriteOnlyTransaction:Trace: SetJobState jobId=16
Hangfire.MySql.MySqlWriteOnlyTransaction:Trace: PersistJob jobId=16
Hangfire.MySql.MySqlDistributedLock:Trace: Release resource=job:16:state-lock
An unhandled exception of type 'System.StackOverflowException' occurred in Hangfire.AspNetCore.dll

重新启动后,我转到hanfire仪表板,看到作业卡在'processing'状态
enter image description here