从这篇文章:
How do I get the current attempt number on a background job in Hangfire?
可以使用魔术字符串“RetryCount”来获取重试次数。
public void SendEmail(PerformContext context, string emailAddress)
{
string jobId = context.BackgroundJob.Id;
int retryCount = context.GetJobParameter<int>("RetryCount");
// send an email
}
如果我需要获得总重试次数怎么样? 我可以使用类似的东西:
int retries = context.GetJobParameter<int>("Retries");
或者如何从“PerformContext”中获取该信息(如果可能的话)?
我需要定义总重试次数,因此我可以在最后一次重试时执行一些任务。
答案 0 :(得分:0)
如果您使用AutomaticRetryAttribute
来定义某个方法的重试次数,则将执行以下操作:
var retryAttempts = context.BackgroundJob.Job.Method.GetCustomAttributes(typeof(AutomaticRetryAttribute), false)
.Cast<AutomaticRetryAttribute>()
.Select(a => a.Attempts)
.FirstOrDefault();
如果该属性不存在,则它将返回0
。如果全局重新设置最大重试次数或以后在属性中修改最大重试次数,则无济于事。