I have been using Hangfire with sql server in an IIS site meant only for running recurring jobs.
No other traffic comes to that site other than me occasionally checking up on execution statuses.
After going live with the site, I noticed that after a day or two recurring jobs are not executed at all. Instead, they are queuing up. When I restarted the app all queued jobs were running at once and my main enterprise app was badly affected.
On the first few times this happened I thought this was an IIS issue, I configured my app not to recycle after remaining idle, and be “Always running” . This didn’t help much. I also upgraded to latest release of Hangfire version last month.
Hanfire is great! it handles the worries of running the job and displaying the current status, but without stability I’m now under pressure to let it go.
Just to confirm, is this guide what you used to configure the site to be always running, including the code changes ?
Have you checked the logs that Hangfire produces ?
Previously I just did the configuration changes .I just added the code and after manual recycling, it seems to be affecting the Servers>starttime as planned. I hope that also means my recurring jobs will not queue up. I’m running it now on prod.
Is there any way for me to configure that recurring jobs that did not fire on time (for any reason) will be deleted automatically?
we notice that after a new site deployment (with hangfire) the scheduled/manual jobs all queue up and don’t start anymore. after recycling the application pool the queued jobs are started. not sure if this is a bug, the dashboard and site are working fine.
touching the web.config, which triggers an appdomain reload, does not get the jobs started.
why do we need to recycle the application pool?
We’re experiencing the same issue. Twice a day, the recurring jobs stop being triggered. Manually triggering them works.
Recycling the application pool or even the entire IIS does not always help. I often need to delete all recurring jobs and add them again (which is fortunately handled by code in our case).