コード例 #1
0
        public static async Task <string> SaveCacheEntity(string url, WebCacheFileModel cacheEntity, long ttl = -1)
        {
            try
            {
                if (WebCacheService == null)
                {
                    InitCacheConnection();
                }

                if (isWebCacheEnabled && WebCacheService != null)
                {
                    var dnsHost       = string.Empty;
                    var pathWithQuery = string.Empty;
                    try
                    {
                        var uri = new Uri(url);
                        dnsHost       = uri.DnsSafeHost?.ToUpper();
                        pathWithQuery = uri?.PathAndQuery;
                    }
                    catch { }

                    var cacheHashKey = HashUrl.GetHashAsString(dnsHost);
                    var cacheKey     = HashUrl.GetHashAsString(pathWithQuery);
                    var cacheValue   = MessagePackSerializer.Serialize <WebCacheFileModel>(cacheEntity);

                    var task = WebCacheService.Save(cacheHashKey, cacheKey, cacheValue);
                    if (task.Wait(_cacheTimeout))
                    {
                        return($"{dnsHost}-{pathWithQuery}");
                    }
                    else
                    {
                        ConsoleLogger.Write($"ERROR: CACHE SaveCacheEntity(url, entity, ttl) - Redis TimeOut");
                    }
                }
            }
            catch (Exception ex)
            {
                ConsoleLogger.Write($"ERROR: CACHE SaveCacheEntity(url, entity, ttl) - {ex.ToString()}");
            }

            return(null);
        }
コード例 #2
0
        public static async Task <string> SaveCacheEntity(string url, string key, WebCacheFileModel cacheEntity, long ttl = -1)
        {
            try
            {
                if (WebCacheService == null)
                {
                    InitCacheConnection();
                }

                if (isWebCacheEnabled && WebCacheService != null)
                {
                    var dnsHost = string.Empty;
                    try
                    {
                        dnsHost = new Uri(url).DnsSafeHost?.ToUpper();
                    }
                    catch { }

                    var cacheHashKey = HashUrl.GetHashAsString(dnsHost);
                    var cacheKey     = HashUrl.GetHashAsString(key);
                    var cacheValue   = JsonConvert.SerializeObject(cacheEntity);

                    var task = WebCacheService.Save(cacheHashKey, cacheKey, cacheValue);
                    if (task.Wait(_cacheTimeout))
                    {
                        return($"{cacheHashKey}-{cacheKey}");
                    }
                    else
                    {
                        ConsoleLogger.Write($"ERROR: CACHE SaveCacheEntity(url, key, entity, ttl) - Redis TimeOut");
                    }
                }
            }
            catch (Exception ex)
            {
                ConsoleLogger.Write($"ERROR: CACHE SaveCacheEntity(url, key, entity, ttl) - {ex.ToString()}");
            }

            return(null);
        }