【发布时间】:2021-06-02 02:53:00
【问题描述】:
我正在使用带有 Hangfire 的 C# ASP.NET Core 3.1 来安排后台作业。默认情况下,如果在后台作业执行过程中发生异常,则有 10 次重试尝试。我知道可以使用AutomaticRetry 属性将其设置为0,但我不想在每个后台作业中都这样做。相反,我希望默认值为 0,并且仅在我希望它为非 0 的极少数情况下使用属性手动指定它。谢谢。
【问题讨论】:
标签: hangfire
我正在使用带有 Hangfire 的 C# ASP.NET Core 3.1 来安排后台作业。默认情况下,如果在后台作业执行过程中发生异常,则有 10 次重试尝试。我知道可以使用AutomaticRetry 属性将其设置为0,但我不想在每个后台作业中都这样做。相反,我希望默认值为 0,并且仅在我希望它为非 0 的极少数情况下使用属性手动指定它。谢谢。
【问题讨论】:
标签: hangfire
我曾经在.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 });
// ...
});
【讨论】: