我刚开始使用Hangfire,非常喜欢它。
我知道Hangfire会保留成功作业的历史记录1天,并在此之后清除。
是否有一种方法可以自定义此默认行为并将历史记录持久化保存,比如保留7天?
我刚开始使用Hangfire,非常喜欢它。
我知道Hangfire会保留成功作业的历史记录1天,并在此之后清除。
是否有一种方法可以自定义此默认行为并将历史记录持久化保存,比如保留7天?
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());
Configuration
.UseXXXStorage()
.WithJobExpirationTimeout(TimeSpan.FromDays(4))