using Furion.Logging; using Microsoft.Extensions.Hosting; using NapCatRobotClient.Core.RobotAPI.Dto.Request; namespace NapCatRobotClient.Service.BackGround { /// /// 秘境结算通知 /// public class MijingBackGroundWorker : BackgroundService { protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { string[] keys = RedisHelper.Client.Keys($"{RedisPrefix.MiJingKey}*"); foreach (string key in keys) { string json = RedisHelper.Client.Get(key); if (string.IsNullOrEmpty(json)) continue; TaskDetailInfo task = JsonConvert.DeserializeObject(json); if (task.TriggerTime <= DateTime.Now) { GroupSendMessageRequest request = new () { GroupId = task.GroupId, Message = [ new MessageItem { Type = "text", Data = new() { Text = $"【秘境结算通知】\r\n探索已完成,该结算奖励了!({task.Minutes} 分钟)" } }, new MessageItem { Type = "at", Data = new() { QQ = task.UserId } } ] }; _ = RobotAPI.SendGroupText(request); RedisHelper.Client.Del(key); } } await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken); } } } }