当前位置:  开发笔记 > 程序员 > 正文

在Hangfire中保留执行工作超过1天的历史记录

如何解决《在Hangfire中保留执行工作超过1天的历史记录》经验,为你挑选了1个好方法。

我刚刚开始使用Hangfire,我很喜欢它.

据我所知,Hangfire维护了1天的成功工作历史,并在此后清除.

有没有办法可以自定义此默认行为并保留7天的任何持续时间的历史记录?



1> Yogi..:

要做到这一点,您需要创建一个作业过滤器并通过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());

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有