You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#:Hangfire任务重试次数配置疑问——AutomaticRetry属性作用范围

关于Hangfire [AutomaticRetry(Attempts = 0)] 属性的作用范围
  • 结论:你代码里的[AutomaticRetry(Attempts = 0)]会将该方法对应的所有Hangfire任务的重试次数都设置为0,而非仅单个具体任务。
  • 原因:Hangfire的AutomaticRetryAttribute是方法级别的配置,只要是通过Hangfire调度BackgroundMethod生成的任务,都会继承这个重试规则——任务执行失败后不会自动重试。

如果需要限制单个具体任务的重试次数,应该在调度任务时单独配置,示例代码如下:

// 立即执行的单个任务,设置重试次数为0
BackgroundJob.Enqueue(() => BackgroundMethod()).WithAutomaticRetry(0);

// 定时任务,单独设置重试次数为0
RecurringJob.AddOrUpdate(() => BackgroundMethod(), Cron.Daily, timeZone: TimeZoneInfo.Local).WithAutomaticRetry(0);

两种配置方式的优先级:调度任务时通过WithAutomaticRetry设置的单个任务配置,优先级高于方法上标记的AutomaticRetryAttribute全局配置。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 22:12:11