public async Task DealMessage(string groupNo, string account) { try { var key = CacheConst.GetGroupMsgListKey(groupNo); string cacheMsgInfo = await _database.ListLeftPopAsync(key); IMahuaApi mahuaApi = null; while (!string.IsNullOrWhiteSpace(cacheMsgInfo)) { mahuaApi = mahuaApi ?? MahuaRobotManager.Instance.CreateSession(account).MahuaApi; GroupItemRes msg = JsonConvert.DeserializeObject <GroupItemRes>(cacheMsgInfo); MahuaApiHelper.SendGroupMsg(mahuaApi, msg, groupNo, account); cacheMsgInfo = await _database.ListLeftPopAsync(key); } } catch (Exception e) { var str = e.Message; } }
public async Task DealMessage() { var list = await _groupActivityService.AutoCloseAsync(); foreach (var item in list) { var key = CacheConst.GetGroupMsgListKey(item.Group); _database.ListLeftPush(key, JsonConvert.SerializeObject(new GroupItemRes() { Msg = $@" >>>>>>>>>成语接龙已结束<<<<<<<<<<<< 成功次数:{item.SuccessCount.ToString()} 失败次数:{item.FailureCount.ToString()} 希望大家再接再厉! " })); } }
/// <summary> /// 创建一个定时关闭活动的定时器 /// </summary> private void CreateCloseTime(int logId, string groupNo, string loginQq) { // 使用线程池开启工作项替代timer ThreadPool.QueueUserWorkItem((state => { Thread.Sleep(RuleConst.GroupActivityExpiry); if (ActivityLogService.CloseActivity(logId, "活动结束,自动关闭!", out var log) > 0) { _database.ListLeftPush(CacheConst.GetGroupMsgListKey(groupNo), JsonConvert.SerializeObject(new GroupItemRes() { Msg = $@" >>>>>>>>>成语接龙已结束<<<<<<<<<<<< 成功次数:{log.SuccessCount.ToString()} 失败次数:{log.FailureCount.ToString()} 希望大家再接再厉! " })); } })); }