To do this, you need to create a job filter and register it through hangfire global configurations, as discussed here -
https://discuss.hangfire.io/t/how-to-configure-the-retention-time-of-job/34
Create job filter -
using Hangfire.Common;
using Hangfire.States;
using Hangfire.Storage;
using System;
namespace HangfireDemo
{
public class ProlongExpirationTimeAttribute : JobFilterAttribute, IApplyStateFilter
{
public void OnStateApplied(ApplyStateContext filterContext, IWriteOnlyTransaction transaction)
{
filterContext.JobExpirationTimeout = TimeSpan.FromDays(7);
}
public void OnStateUnapplied(ApplyStateContext context, IWriteOnlyTransaction transaction)
{
context.JobExpirationTimeout = TimeSpan.FromDays(7);
}
}
}
...and register in global job filters -
GlobalJobFilters.Filters.Add(new ProlongExpirationTimeAttribute());