Hangfire vs Quartz.NET vs IHostedService for scheduled LLM jobs
Use Quartz.NET when an LLM job must run on a real cron and never overlap itself, Hangfire when each run must survive a restart and retry on rate limits, and a plain BackgroundService only for a loose in-process loop. A decision matrix with the cron and concurrency gotchas that pick for you.