public BPubSubUniqueMessageDeliveryEnsurer( IBMemoryServiceInterface _EnsurerMemoryService, IBPubSubServiceInterface _PubSubService) { EnsurerMemoryService = _EnsurerMemoryService; PubSubService = _PubSubService; }
private bool SubscribeToPubSub(IBPubSubServiceInterface _PubSub, Action <string> _ErrorMessageAction = null) { return(_PubSub.CustomSubscribe("models", (Message, Json) => { //make two copies so that writers don't interfere with each other try { byte[] MessageBytes = Convert.FromBase64String(Json); MemoryStream InputStream = new MemoryStream(MessageBytes); MemoryStream OutputStream = new MemoryStream(); using (DeflateStream decompressionStream = new DeflateStream(InputStream, CompressionMode.Decompress)) { decompressionStream.CopyTo(OutputStream); } string DecompressedMessage = Encoding.UTF8.GetString(OutputStream.ToArray()); NodeMessage MessageReceived = JsonConvert.DeserializeObject <NodeMessage>(DecompressedMessage); AddMessage(MessageReceived, _ErrorMessageAction); } catch (Exception ex) { _ErrorMessageAction?.Invoke($"[{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fffff")}] {ex.Message}\n{ex.StackTrace}"); } })); }
public void Setup(IBPubSubServiceInterface _PubSubService) { PubSubService = _PubSubService; ActionStringMap.Clear(); StringActionMap.Clear(); foreach (var Action in Actions.ActionStringPrefixMap.Keys) { string ActionName = Actions.ActionStringPrefixMap[Action] + Resources_DeploymentManager.Get().GetDeploymentBranchNameEscapedLoweredWithUnderscore() + "_" + Resources_DeploymentManager.Get().GetDeploymentBuildNumber(); ActionStringMap.Add(Action, ActionName); StringActionMap.Add(ActionName, Action); } }
public bool WithPubSubService(bool _bFailoverMechanismEnabled = true) { /* * Pub/Sub service initialization */ PubSubService = new BPubSubServiceAWS(RequiredEnvironmentVariables["AWS_ACCESS_KEY"], RequiredEnvironmentVariables["AWS_SECRET_KEY"], RequiredEnvironmentVariables["AWS_REGION"], (string Message) => { LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, Message), ProgramID, "Initialization"); }); if (PubSubService == null || !PubSubService.HasInitializationSucceed()) { LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, "Pub/Sub service initialization has failed."), ProgramID, "Initialization"); return(false); } return(true); }
public bool WithMemoryService(bool _bFailoverMechanismEnabled = true, IBPubSubServiceInterface _WithPubSubService = null) { /* * Memory service initialization */ if (!RequiredEnvironmentVariables.ContainsKey("REDIS_ENDPOINT") || !RequiredEnvironmentVariables.ContainsKey("REDIS_PORT") || !int.TryParse(RequiredEnvironmentVariables["REDIS_PORT"], out int RedisPort) || !RequiredEnvironmentVariables.ContainsKey("REDIS_PASSWORD")) { LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, "REDIS_ENDPOINT, REDIS_PORT, REDIS_PASSWORD parameters must be provided and valid."), ProgramID, "Initialization"); return(false); } bool RedisSslEnabled = false; if (RequiredEnvironmentVariables.ContainsKey("REDIS_SSL_ENABLED") && !bool.TryParse(RequiredEnvironmentVariables["REDIS_SSL_ENABLED"], out RedisSslEnabled)) { LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Warning, "REDIS_SSL_ENABLED parameter has been provided, but it has not a valid value. It will be continued without SSL."), ProgramID, "Initialization"); } MemoryService = new BMemoryServiceRedis( RequiredEnvironmentVariables["REDIS_ENDPOINT"], RedisPort, RequiredEnvironmentVariables["REDIS_PASSWORD"], RedisSslEnabled, _WithPubSubService, _bFailoverMechanismEnabled, (string Message) => { LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, Message), ProgramID, "Initialization"); }); if (MemoryService == null || !MemoryService.HasInitializationSucceed()) { LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, "Memory service initialization has failed."), ProgramID, "Initialization"); return(false); } return(true); }
public bool WithPubSubService(bool _bFailoverMechanismEnabled = true) { /* * Pub/Sub service initialization */ PubSubService = new BPubSubServiceAzure( RequiredEnvironmentVariables["AZ_CLIENT_ID"], RequiredEnvironmentVariables["AZ_CLIENT_SECRET"], RequiredEnvironmentVariables["AZ_TENANT_ID"], RequiredEnvironmentVariables["AZ_SERVICEBUS_NAMESPACE_ID"], RequiredEnvironmentVariables["AZ_SERVICEBUS_NAMESPACE_CONNECTION_STRING"], (string Message) => { LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, Message), ProgramID, "Initialization"); }); if (PubSubService == null || !PubSubService.HasInitializationSucceed()) { LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, "Pub/Sub service initialization has failed."), ProgramID, "Initialization"); return(false); } return(true); }