Exemple #1
0
        public static string BlockingPopItemFromList(string listId, TimeSpan?timSpan)
        {
            string result = null;

            using (IRedisClient redis = RedisManager.GetClient())
            {
                result = redis.BlockingPopItemFromList(listId, timSpan);
                redis.Dispose();
            }
            return(result);
        }
Exemple #2
0
 /// <summary>
 /// 阻塞队列直到取出一条消息
 /// </summary>
 /// <param name="queueName"></param>
 /// <returns></returns>
 public static string PopBlocking(string queueName)
 {
     try
     {
         using (IRedisClient redis = OpenServer())
         {
             return(redis.BlockingPopItemFromList(queueName, TimeSpan.FromDays(1)));
         }
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
        public async Task ListenAsync(CancellationToken cancellationToken)
        {
            await Task.Run(() =>
            {
                this.redis = manager.GetClient();

                while (!cancellationToken.IsCancellationRequested)
                {
                    //Get the name that has been queued, and process it
                    string username = redis.BlockingPopItemFromList(PENDING_KEY, Timeout);
                    if (string.IsNullOrEmpty(username))
                    {
                        continue;
                    }

                    //Process the session
                    if (!cancellationToken.IsCancellationRequested)
                    {
                        ProcessSession(username);
                    }
                }
            }, cancellationToken);
        }