예제 #1
0
 public void SetCacheProductHash(long companyId, ProductHash product)
 {
     while (true)
     {
         try
         {
             _database.HashSet("c:" + companyId, new HashEntry[] { new HashEntry(product.Id, product.getJSON()) });
             return;
         }
         catch (Exception ex)
         {
             _log.Error(ex);
             Thread.Sleep(1000);
         }
     }
 }
예제 #2
0
        public List <ProductHash> GetAllProductHash(long companyId, List <long> productIds)
        {
            List <ProductHash> productHashs = new List <ProductHash>();

            foreach (var subProductIds in Common.SplitArray(productIds.ToArray(), 100))
            {
                while (true)
                {
                    int iTry = 0;
                    try
                    {
                        iTry++;
                        var arKey = new RedisValue[subProductIds.Count];
                        for (int i = 0; i < subProductIds.Count; i++)
                        {
                            arKey[i] = subProductIds[i];
                        }
                        productHashs.AddRange((from item in this._database.HashGet("c:" + companyId, arKey) where item.HasValue select ProductHash.FromJSON(item.ToString())).ToList());
                        break;
                    }
                    catch (Exception exception)
                    {
                        if (iTry > 5)
                        {
                            _log.Error(string.Format("Try {0} Mss {1}", exception.Message + exception.StackTrace, iTry));
                        }
                        Thread.Sleep(10000);
                    }
                }
            }
            return(productHashs);
        }
예제 #3
0
        public List <ProductHash> GetAllProductHash(long companyId)
        {
            RedisValue[]       arKey = _database.HashKeys("c:" + companyId.ToString());
            List <ProductHash> lst   = new List <ProductHash>();
            var lstArray             = Common.SplitArray <RedisValue>(arKey, 100);

            foreach (var arrayKey in lstArray)
            {
                try
                {
                    lst.AddRange(this._database.HashGet("c:" + companyId, arrayKey.ToArray()).Select(item => ProductHash.FromJSON(item.ToString())));
                }
                catch (Exception ex01)
                {
                    _log.Error(ex01);
                }
            }
            return(lst);
        }