using Furion.Logging; using Microsoft.Extensions.Hosting; using NapCatRobotClient.Core.RobotAPI.Dto.Request; namespace NapCatRobotClient.Service.BackGround { /// /// 灵田结算通知 /// public class LingTianBackGroundWorker : BackgroundService { protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { string[] keys = RedisHelper.Client.Keys($"{RedisPrefix.LingTianKey}*"); 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() { new MessageItem() { Type = "text", Data = new() { Text = $"【灵田结算通知】\r\n该结算奖励了!" } }, new MessageItem() { Type = "at", Data = new() { QQ = task.UserId } } } }; _ = RobotAPI.SendGroupText(request); RedisHelper.Client.Del(key); } } await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken); } } } }