Exemple #1
0
        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()}
希望大家再接再厉!
"
                    }));
                }
            }));
        }