Exemplo n.º 1
0
        /// <summary>
        /// 执行批量操作
        /// </summary>
        /// <param name="timeout"></param>
        /// <returns></returns>
        public List <string> Execute(int timeout = 10 * 1000)
        {
            return(TaskHelper.Run((token) =>
            {
                List <string> result = null;

                lock (SyncRoot)
                {
                    if (!_batchData.Any())
                    {
                        return null;
                    }

                    result = new List <string>();

                    StringBuilder sb = new StringBuilder();

                    foreach (var item in _batchData)
                    {
                        sb.Append(item.Cmd);
                    }

                    _redisCode.Request(sb.ToString());

                    foreach (var item in _batchData)
                    {
                        var data = _redisCode.Decoder <string>(item.RequestType, token);

                        result.Add(data.Data);
                    }
                }
                return result;
            }, timeout).GetAwaiter().GetResult());
        }
Exemplo n.º 2
0
        /// <summary>
        /// 执行批量操作
        /// </summary>
        /// <returns></returns>
        public IEnumerable <object> Execute()
        {
            if (!_batchData.Any())
            {
                yield return(null);
            }

            StringBuilder sb = new StringBuilder();

            foreach (var item in _batchData)
            {
                sb.Append(item.Cmd);
            }

            _redisCode.Request(sb.ToString());

            foreach (var item in _batchData)
            {
                var data = _redisCode.Decoder(item.RequestType);

                yield return(data.Data);
            }
        }