我刚刚开始使用Hangfire,我很喜欢它.
据我所知,Hangfire维护了1天的成功工作历史,并在此后清除.
有没有办法可以自定义此默认行为并保留7天的任何持续时间的历史记录?
要做到这一点,您需要创建一个作业过滤器并通过hangfire全局配置进行注册,如下所述 - https://discuss.hangfire.io/t/how-to-configure-the-retention-time-of-job/34
创建工作过滤器 -
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); } } }
...并注册全局工作过滤器 -
GlobalJobFilters.Filters.Add(new ProlongExpirationTimeAttribute());