using Hangfire.States;
using Hangfire.Storage;
using System;
namespace CoreCms.Net.Web.WebApi.Infrastructure
{
///
/// 已完成的job设置过期,防止数据无限增长
///
public class SucceededStateExpireHandler : IStateHandler
{
///
/// 数据过期时间
///
public TimeSpan JobExpirationTimeout;
///
/// 完成的项目过期状态处理
///
///
public SucceededStateExpireHandler(int jobExpirationTimeout)
{
JobExpirationTimeout = TimeSpan.FromMinutes(jobExpirationTimeout);
}
///
/// 状态名称
///
public string StateName => SucceededState.StateName;
///
/// 应用状态
///
///
///
public void Apply(ApplyStateContext context, IWriteOnlyTransaction transaction)
{
context.JobExpirationTimeout = JobExpirationTimeout;
}
///
/// 不应用状态
///
///
///
public void Unapply(ApplyStateContext context, IWriteOnlyTransaction transaction)
{
}
}
}