We are using Hangfire in Dev, Test and Production environment. We have around 7 recurring jobs running at different intervals. Also, we have modified the cron to be Yearly for all jobs and triggering the recurring jobs using a C# Timer for different intervals. We have done this as we required a particular job to run every 30 seconds or less which is not supported by Hangfire.
Now, everything works fine for us but at times, like once a month we have a deadlock situation in Hangfire. Just to add, this has happened even when we did not have the less than a minute jobs.
The deadlock is so that we can see thousands of jobs in enqueued state approx 10K to 20k at times. Also, we have 20 jobs being processed at a single time i.e. default worker threads are being used up. Now we also have DisableConcurrentExecution(Timeout=0) and AutomaticRetry(0) these attributes on all our jobs.
But still, we can see multiple instance of some jobs being in processed state. And the default connection pool size of 200 is also used on the SQL Hangfire database. So, no jobs are being processed and everything keeps piing up.
This is sort of different implementation form what is expected but still it should not end up in having deadlock.
Any help/suggestions on this will be appreciated.
I having the same problem.
Is someone else facing the same problem?