如何在C# .NET 7中获取Hangfire定时任务列表?
Hangfire 1.8.6 获取定时任务列表为空的解决办法
先明确任务类型对应方法
Hangfire里的ScheduledJobs()只返回延迟执行任务(比如用BackgroundJob.Schedule()创建的单次延迟任务),如果你的「定时任务」是周期性重复任务(用RecurringJob.AddOrUpdate()创建的),得用另一个方法获取:
var api = JobStorage.Current.GetMonitoringApi(); var recurringJobs = api.RecurringJobs();
其他排查点
- 检查分页参数:如果你的延迟任务数量超过100,或者起始索引不对,试试拉取全量:
api.ScheduledJobs(0, int.MaxValue) - 确认JobStorage实例一致:确保
JobStorage.Current和你创建任务时用的是同一个实例,避免多实例导致的数据源不一致 - 排除状态变更:任务可能已经执行、被取消或转移到其他队列,可通过任务ID用
api.Jobs(jobId)查询具体状态 - 等待数据库同步:刚创建的任务可能有短暂延迟,稍等几秒再尝试获取
内容的提问来源于stack exchange,提问作者Cef
相关产品推荐
相关产品推荐

