Exemple #1
0
        public override Request Poll()
        {
            return(NetworkCenter.Current.Execute("rds-pl", () =>
            {
                return RetryExecutor.Execute(30, () =>
                {
                    RedisValue value;
                    if (DepthFirst)
                    {
                        value = RedisConnection.Database.ListRightPop(_queueKey);
                    }
                    else
                    {
                        value = RedisConnection.Database.ListLeftPop(_queueKey);
                    }
                    if (!value.HasValue)
                    {
                        return null;
                    }
                    string field = value.ToString();

                    string json = RedisConnection.Database.HashGet(_itemKey, field);

                    if (!string.IsNullOrEmpty(json))
                    {
                        var result = JsonConvert.DeserializeObject <Request>(json);
                        RedisConnection.Database.HashDelete(_itemKey, field);
                        return result;
                    }
                    return null;
                });
            }));
        }
Exemple #2
0
        protected override void PushWhenNoDuplicate(Request request)
        {
            RetryExecutor.Execute(30, () =>
            {
                RedisConnection.Database.ListRightPush(_queueKey, request.Identity);
                string field = request.Identity;
                string value = JsonConvert.SerializeObject(request);

                RedisConnection.Database.HashSet(_itemKey, field, value);
            });
        }
Exemple #3
0
 public bool IsDuplicate(Request request)
 {
     return(RetryExecutor.Execute(30, () =>
     {
         bool isDuplicate = RedisConnection.Database.SetContains(_setKey, request.Identity);
         if (!isDuplicate)
         {
             RedisConnection.Database.SetAdd(_setKey, request.Identity);
         }
         return isDuplicate;
     }));
 }
 public bool IsDuplicate(Request request)
 {
     return(RetryExecutor.Execute(30, () =>
     {
         bool isDuplicate = _db.SetContains(_setKey, request.Identity);
         if (!isDuplicate)
         {
             _db.SetAdd(_setKey, request.Identity);
         }
         return isDuplicate;
     }));
 }
Exemple #5
0
        private Request PollRequest()
        {
            return(RetryExecutor.Execute(30, () =>
            {
                var value = DepthFirst ? RedisConnection.Database.ListRightPop(_queueKey) : RedisConnection.Database.ListLeftPop(_queueKey);

                if (!value.HasValue)
                {
                    return null;
                }
                string field = value.ToString();

                string json = RedisConnection.Database.HashGet(_itemKey, field);

                if (!string.IsNullOrEmpty(json))
                {
                    var result = JsonConvert.DeserializeObject <Request>(json);
                    RedisConnection.Database.HashDelete(_itemKey, field);
                    return result;
                }
                return null;
            }));
        }