Example #1
0
        /// <summary>
        /// 获取redis回复的内容
        /// </summary>
        /// <param name="timeOut">设置收取消息超时时间,默认30秒</param>
        /// <returns></returns>
        string GetRedisReply()
        {
            string str = string.Empty;

            bool loop = false;

            int timeCount = 0;

            do
            {
                timeCount++;

                str = _redisStream.ReadLine();

                loop = string.IsNullOrEmpty(str);

                if (loop)
                {
                    Thread.Sleep(1);

                    if (timeCount >= _actionTimeout)
                    {
                        throw new TimeoutException("-Err:Operation is timeout!");
                    }
                }
            }while (loop);

            return(str);
        }
Example #2
0
        /// <summary>
        /// 获取redis回复的内容
        /// </summary>
        /// <param name="timeOut">设置收取消息超时时间,默认30秒</param>
        /// <returns></returns>
        string GetRedisReply()
        {
            try
            {
                return(TaskHelper.Run((token) =>
                {
                    string str = string.Empty;
                    do
                    {
                        str = _redisStream.ReadLine();

                        if (string.IsNullOrEmpty(str))
                        {
                            Thread.Yield();
                        }
                        else
                        {
                            break;
                        }
                    }while (!token.IsCancellationRequested);

                    return str;
                }, _actionTimeout).Result);
            }
            catch (Exception ex)
            {
                return("-Err:GetRedisReply Timeout," + ex.Message);
            }
        }
Example #3
0
        /// <summary>
        /// 获取redis回复的内容
        /// </summary>
        /// <param name="ctoken">设置收取消息超时时间,默认30秒</param>
        /// <returns></returns>
        string GetRedisReply(CancellationToken ctoken)
        {
            try
            {
                string str = string.Empty;
                do
                {
                    str = _redisStream.ReadLine();

                    if (string.IsNullOrEmpty(str))
                    {
                        Thread.Yield();
                    }
                    else
                    {
                        break;
                    }
                }while (!ctoken.IsCancellationRequested);

                return(str);
            }
            catch (Exception ex)
            {
                return("-Err:GetRedisReply Timeout," + ex.Message);
            }
        }
Example #4
0
        /// <summary>
        /// 获取redis回复的内容
        /// </summary>
        /// <param name="timeOut">设置收取消息超时时间,默认30秒</param>
        /// <returns></returns>
        string GetRedisReply()
        {
            string str = string.Empty;

            bool loop = false;

            var beginTime = DateTimeHelper.Now;

            do
            {
                str = _redisStream.ReadLine();

                loop = string.IsNullOrEmpty(str);

                if (loop)
                {
                    Thread.Sleep(0);

                    if ((DateTimeHelper.Now - beginTime).TotalMilliseconds > _actionTimeout)
                    {
                        throw new TimeoutException("-Err:Operation is timeout!");
                    }
                }
            }while (loop);

            return(str);
        }