private static void CloseBuckets(object status) { SafeBucket safeBucket; try { int count = SafeBucket.garbagePool.Count; for (int i = 0; i < count; i++) { if (SafeBucket.garbagePool.TryDequeue(out safeBucket)) { if (safeBucket.currentThreadCount != -1) { SafeBucket.garbagePool.Enqueue(safeBucket); } else { safeBucket.bucket.Dispose(); } } } } catch (Exception exception) { DebugUtil.CollectDebugInfo(string.Format("CloseBuckets Exception:{0}", exception.Message)); } }
public string GetAppUri(AppNameEnum appName) { string empty = string.Empty; try { string str = appName.ToString(); DebugUtil.CollectDebugInfo(str, "WJOP.Foundation.Location.LocationHelper.GetAppUri"); if (!LocationHelper._appUriDic.TryGetValue(str, out empty)) { empty = this.GetAppLocation(str); LocationHelper._appUriDic.TryAdd(str, empty); } else { empty = LocationHelper._appUriDic[str]; } } catch (Exception exception1) { Exception exception = exception1; DebugUtil.LogException(exception); DebugUtil.CollectDebugInfo(exception, "WJOP.Foundation.Location.LocationHelper.GetAppUri"); } return(empty); }
public bool Exists(string key) { bool flag = false; try { SafeBucket instance = SafeBucket.Instance; try { flag = instance.Bucket.Exists(KeyGen.AttachPrefixToKey(key)); } finally { if (instance != null) { ((IDisposable)instance).Dispose(); } } DebugUtil.CollectDebugInfo(string.Format("Exists('{0}'), IsSuccess:{1}", key, flag)); } catch (Exception exception1) { Exception exception = exception1; DebugUtil.CollectDebugInfo(string.Format("Exists('{0}'), Exception:{1}", key, exception.Message)); } return(flag); }
public ICacheResult <T> Set <T>(string key, T value, int expiredTime = 3600) { CacheResult <T> cacheResult = new CacheResult <T>() { Success = false, Status = Status.None }; CacheResult <T> cacheResult1 = cacheResult; expiredTime = (expiredTime <= 0 ? 3600 : expiredTime); try { SafeBucket instance = SafeBucket.Instance; try { IOperationResult <T> operationResult = instance.Bucket.Upsert <T>(KeyGen.AttachPrefixToKey(key), value, new TimeSpan(0, 0, 0, expiredTime)); DebugUtil.CollectDebugInfo(string.Format("Set<T>('{0}'), Status:{1}, Exception:{2}", key, operationResult.Status, (operationResult.Exception == null ? "null" : operationResult.Exception.Message))); cacheResult1 = new CacheResult <T>(operationResult); } finally { if (instance != null) { ((IDisposable)instance).Dispose(); } } } catch (Exception exception1) { Exception exception = exception1; cacheResult1.Exception = exception; DebugUtil.CollectDebugInfo(string.Format("Set<T>('{0}'), Exception:{1}", key, exception.Message)); } return(cacheResult1); }
public IDictionary <string, ICacheResult <T> > Set <T>(IDictionary <string, T> items, int expiredTime = 3600) { Dictionary <string, ICacheResult <T> > strs = new Dictionary <string, ICacheResult <T> >(); expiredTime = (expiredTime <= 0 ? 3600 : expiredTime); TimeSpan timeSpan = new TimeSpan(0, 0, 0, expiredTime); SafeBucket instance = SafeBucket.Instance; try { foreach (KeyValuePair <string, T> item in items) { IOperationResult <T> operationResult = instance.Bucket.Upsert <T>(KeyGen.AttachPrefixToKey(item.Key), item.Value, timeSpan); DebugUtil.CollectDebugInfo(string.Format("Set<T>('{0}'), Status:{1}, Exception:{2}", item.Key, operationResult.Status, (operationResult.Exception == null ? "null" : operationResult.Exception.Message))); strs.Add(item.Key, new CacheResult <T>(operationResult)); } } finally { if (instance != null) { ((IDisposable)instance).Dispose(); } } return(strs); }
public ICacheResult Remove(string key) { CacheResult cacheResult = new CacheResult() { Success = false, Status = Status.None }; CacheResult cacheResult1 = cacheResult; try { SafeBucket instance = SafeBucket.Instance; try { IOperationResult operationResult = instance.Bucket.Remove(KeyGen.AttachPrefixToKey(key)); DebugUtil.CollectDebugInfo(string.Format("Remove('{0}'), Status:{1}, Exception:{2}", key, operationResult.Status, (operationResult.Exception == null ? "null" : operationResult.Exception.Message))); cacheResult1 = new CacheResult(operationResult); } finally { if (instance != null) { ((IDisposable)instance).Dispose(); } } } catch (Exception exception1) { Exception exception = exception1; cacheResult1.Exception = exception; DebugUtil.CollectDebugInfo(string.Format("Remove('{0}'), Exception:{1}", key, exception.Message)); } return(cacheResult1); }
public ICacheResult <TResult> GetOrSet <TParam, TResult>(string key, Func <TParam, TResult> func, TParam param, int expiredTime = 3600) where TResult : class { ICacheResult <TResult> cacheResult = this.Get <TResult>(key); expiredTime = (expiredTime <= 0 ? 3600 : expiredTime); if ((cacheResult.Status != Status.Success ? true : !cacheResult.Success)) { try { TResult tResult = func(param); this.Set <TResult>(key, tResult, expiredTime); cacheResult.Value = tResult; cacheResult.Success = true; cacheResult.Status = Status.Success; } catch (Exception exception1) { Exception exception = exception1; cacheResult.Exception = exception; cacheResult.Success = false; cacheResult.Value = default(TResult); cacheResult.Status = Status.None; DebugUtil.CollectDebugInfo(string.Format("GetOrSet<TPara, TResult>('{0}'), Exception:{1}", key, exception.Message)); } } return(cacheResult); }
private static string GetLogAPIUrl() { string appUri = LocationHelper.Instance.GetAppUri(AppNameEnum.LogApi); string str = string.Format("{0}{1}", appUri, "api/log/BinaryWrite"); DebugUtil.CollectDebugInfo(str, "WJOP.Foundation.Log.SDK.LogHost.GetLogAPIUrl line:28"); return(str); }
public void Refresh() { if (!LocationHelper._appUriDic.IsEmpty) { List <string> list = LocationHelper._appUriDic.Keys.ToList <string>(); IDictionary <string, string> data = null; try { string str = string.Concat(AppContext.LocationServerURI, "api/Location/BatchGetAppLocations"); DebugUtil.CollectDebugInfo(str, "WJOP.Foundation.Location.LocationHelper.Refresh"); BatchGetLocationRequest batchGetLocationRequest = new BatchGetLocationRequest() { AppKey = AppContext.AppKey, AppNameList = list }; EnvInfo envInfo = new EnvInfo() { IP = AppContext.IPv4, Env = AppContext.Environment }; batchGetLocationRequest.EnvInfo = envInfo; BatchGetLocationRequest batchGetLocationRequest1 = batchGetLocationRequest; FoundationResponse <IDictionary <string, string> > result = str.PostWebApi <FoundationResponse <IDictionary <string, string> >, BatchGetLocationRequest>(batchGetLocationRequest1, null, 180000).Result; if (!result.IsSuccess) { DebugUtil.Log(string.Format("LocationHelper: Failed to Refresh error Message: {0}", result.ErrMsg)); } else { data = result.Data; foreach (string key in data.Keys) { DebugUtil.Log(string.Format("WJOP.Foundation.Location.LocationHelper.Refresh key:[{0}],old value [{1}] , new Value:[{2}]", key, LocationHelper._appUriDic[key], data[key])); LocationHelper._appUriDic[key] = data[key]; } } } catch (Exception exception1) { Exception exception = exception1; DebugUtil.LogException(exception); DebugUtil.CollectDebugInfo(exception, "WJOP.Foundation.Location.LocationHelper.Refresh"); } } else { DebugUtil.Log("WJOP.Foundation.Location.LocationHelper.Refresh: don't need to refresh"); } }
public static ApiResult <TResult> Call <TResult, TData>(string url, TData data, ApiHttpMethod method = 0, int timeout = 180000, NameValueCollection headers = null) { string empty = string.Empty; ApiResult <TResult> apiResult = new ApiResult <TResult>(); TResult tResult; JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); try { using (var client = new HttpClient()) { Task <HttpResponseMessage> response = null; if (method == ApiHttpMethod.POST) { HttpContent content = new StringContent(javaScriptSerializer.Serialize(data), Encoding.UTF8, "application/json"); response = client.PostAsync(url, content); } else { response = client.GetAsync(url); } response.Result.EnsureSuccessStatusCode(); apiResult.StatusCode = response.Result.StatusCode; empty = response.Result.Content.ReadAsStringAsync().Result; if (typeof(TResult) == typeof(bool)) { tResult = default(TResult); apiResult.Result = empty.ToGetValue <TResult>(tResult); } else if (!(typeof(TResult) == typeof(string))) { apiResult.Result = javaScriptSerializer.Deserialize <TResult>(empty); } else { tResult = default(TResult); apiResult.Result = empty.ToGetValue <TResult>(tResult); } } } catch (Exception ex) { apiResult.ExceptionMessage = ex.Message; DebugUtil.LogException(ex); DebugUtil.CollectDebugInfo(ex, "TGOP.Foundation.Common.ProxyBase.Call"); } return(apiResult); }
private RedisCache() { string cacheConfigString = AppContext.CacheConfigString; string appUri = LocationHelper.Instance.GetAppUri(AppNameEnum.RedisSvc); cacheConfigString = (string.IsNullOrEmpty(cacheConfigString) ? appUri.Replace("http://", string.Empty).Trim(new char[] { '/' }) : cacheConfigString); ConfigurationOptions configurationOption = ConfigurationOptions.Parse(cacheConfigString); if (configurationOption.EndPoints.Count == 0) { configurationOption.EndPoints.Add(appUri); } this.redis = ConnectionMultiplexer.Connect(configurationOption, null); this.db = this.redis.GetDatabase(-1, null); DebugUtil.CollectDebugInfo(JsonSerializerUtil.Serialize <ConfigurationOptions>(configurationOption)); }
private string GetAppLocation(string appName) { string data = null; try { string str = string.Concat(AppContext.LocationServerURI, "api/Location/GetAppLocation"); DebugUtil.CollectDebugInfo(str, "WJOP.Foundation.Location.LocationHelper.GetAppUris line:70"); GetLocationRequest getLocationRequest = new GetLocationRequest() { AppKey = AppContext.AppKey, AppName = appName }; EnvInfo envInfo = new EnvInfo() { IP = AppContext.IPv4, Env = AppContext.Environment }; getLocationRequest.EnvInfo = envInfo; GetLocationRequest getLocationRequest1 = getLocationRequest; FoundationResponse <string> result = str.PostWebApi <FoundationResponse <string>, GetLocationRequest>(getLocationRequest1, null, 180000).Result; if (!result.IsSuccess) { DebugUtil.Log(string.Format("LocationHelper: Failed to match service uri for {0}, error Message: {1}", appName, result.ErrMsg)); } else { DebugUtil.Log(string.Format("LocationHelper: Found service uri for {0} : {1}", appName, result.Data)); data = result.Data; } } catch (Exception exception1) { Exception exception = exception1; DebugUtil.LogException(exception); DebugUtil.CollectDebugInfo(exception, "WJOP.Foundation.Location.LocationHelper.GetAppUris line:98"); } return(data); }
public ICacheResult ResetKeys(string keyPrefix = "") { CacheResult cacheResult = new CacheResult() { Success = false, Status = Status.None }; CacheResult cacheResult1 = cacheResult; try { SafeBucket instance = SafeBucket.Instance; try { IBucket bucket = instance.Bucket; object[] appKey = new object[] { AppContext.AppKey, keyPrefix, SafeBucket.Instance.Bucket.Name, KeyGen.AttachPrefixToKey(keyPrefix) }; bucket.Query <object>(string.Format("CREATE INDEX {0}_{1}_KeyPrefix_Index ON {2}(position((meta().id), \"{3}\")) USING GSI", appKey)); IQueryResult <object> queryResult = instance.Bucket.Query <object>(string.Format("DELETE FROM {0} WHERE POSITION(META().id, \"{1}\") = 0", SafeBucket.Instance.Bucket.Name, KeyGen.AttachPrefixToKey(keyPrefix))); instance.Bucket.Query <object>(string.Format("DROP INDEX {0}.{1}_{2}_KeyPrefix_Index USING GSI", SafeBucket.Instance.Bucket.Name, AppContext.AppKey, keyPrefix)); DebugUtil.CollectDebugInfo(string.Format("Reset keys by prefix('{0}'), Status:{1}, Exception:{2}", keyPrefix, queryResult.Status, (queryResult.Exception == null ? "null" : queryResult.Exception.Message))); cacheResult1 = new CacheResult(queryResult); } finally { if (instance != null) { ((IDisposable)instance).Dispose(); } } } catch (Exception exception1) { Exception exception = exception1; cacheResult1.Exception = exception; DebugUtil.CollectDebugInfo(string.Format("Reset keys by prefix('{0}'), Exception:{1}", keyPrefix, exception.Message)); } return(cacheResult1); }
public ICacheResult <T> Get <T>(string key) { CacheResult <T> cacheResult = new CacheResult <T>() { Success = false, Status = Status.None }; CacheResult <T> cacheResult1 = cacheResult; try { SafeBucket instance = SafeBucket.Instance; try { IOperationResult <T> operationResult = instance.Bucket.Get <T>(KeyGen.AttachPrefixToKey(key)); object[] objArray = new object[] { key, operationResult.Status, null, null }; objArray[2] = (operationResult.Value == null ? "null" : operationResult.Value.ToString()); objArray[3] = (operationResult.Exception == null ? "null" : operationResult.Exception.Message); DebugUtil.CollectDebugInfo(string.Format("Get<T>('{0}'), Status:{1}, Value:{2}, Exception:{3}", objArray)); cacheResult1 = new CacheResult <T>(operationResult); } finally { if (instance != null) { ((IDisposable)instance).Dispose(); } } } catch (Exception exception1) { Exception exception = exception1; cacheResult1.Exception = exception; DebugUtil.CollectDebugInfo(string.Format("Get<T>('{0}'), Exception:{1}", key, exception.Message)); } return(cacheResult1); }