如何将所有 Hangfire 作业的重试次数默认设置为 0?

How can I set retry count to 0 by default for all Hangfire jobs?

我正在使用 C# ASP.NET Core 3.1 和 Hangfire 来安排后台作业。默认情况下,如果后台作业执行过程中出现异常,则有 10 次重试尝试。我知道可以使用 AutomaticRetry 属性将其设置为 0,但我不想在每个后台作业上都这样做。相反,我希望默认值为 0,并且只在极少数情况下使用属性手动指定它,我希望它为非 0。谢谢

我以前在.Net Classic 中也是这样,我想在.Net Core 中应该不会有太大区别

// disable automatic retry if a job fails
Hangfire.GlobalJobFilters.Filters.Add(new AutomaticRetryAttribute() { Attempts = 0 }); 

在 ASP.NET Core +(5, 6)... 你可以这样做:

services.AddHangfire((serviceProvider, globalConfiguration) =>
    
    // ...
    globalConfiguration.UseFilter(new AutomaticRetryAttribute { Attempts = 0 });
    // ...
});