mirror of
https://gitee.com/ccnetcore/Yi
synced 2026-03-06 01:30:53 +08:00
38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
|
|
using FreeRedis;
|
|||
|
|
using Microsoft.Extensions.Configuration;
|
|||
|
|
using Microsoft.Extensions.Options;
|
|||
|
|
using Quartz;
|
|||
|
|
using Volo.Abp.BackgroundWorkers.Quartz;
|
|||
|
|
using Volo.Abp.Caching;
|
|||
|
|
using Volo.Abp.DependencyInjection;
|
|||
|
|
using Volo.Abp.Domain.Entities;
|
|||
|
|
using Volo.Abp.EventBus.Local;
|
|||
|
|
using Yi.Framework.Bbs.Domain.Entities;
|
|||
|
|
using Yi.Framework.Bbs.Domain.Shared.Caches;
|
|||
|
|
using Yi.Framework.Bbs.Domain.Shared.Enums;
|
|||
|
|
using Yi.Framework.Bbs.Domain.Shared.Etos;
|
|||
|
|
using Yi.Framework.SqlSugarCore.Abstractions;
|
|||
|
|
|
|||
|
|
namespace Yi.Framework.Bbs.Application.Jobs;
|
|||
|
|
|
|||
|
|
public class AccessLogCacheJob : QuartzBackgroundWorkerBase
|
|||
|
|
{
|
|||
|
|
private readonly ILocalEventBus _localEventBus;
|
|||
|
|
|
|||
|
|
public AccessLogCacheJob(ILocalEventBus localEventBus)
|
|||
|
|
{
|
|||
|
|
_localEventBus = localEventBus;
|
|||
|
|
JobDetail = JobBuilder.Create<AccessLogCacheJob>().WithIdentity(nameof(AccessLogCacheJob))
|
|||
|
|
.Build();
|
|||
|
|
|
|||
|
|
//每10秒执行一次,将本地缓存转入redis,防止丢数据
|
|||
|
|
Trigger = TriggerBuilder.Create().WithIdentity(nameof(AccessLogCacheJob))
|
|||
|
|
.WithSimpleSchedule((schedule) => { schedule.WithInterval(TimeSpan.FromSeconds(10)).RepeatForever();; })
|
|||
|
|
.Build();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public override async Task Execute(IJobExecutionContext context)
|
|||
|
|
{
|
|||
|
|
await _localEventBus.PublishAsync(new AccessLogResetArgs());
|
|||
|
|
}
|
|||
|
|
}
|