public RedisService( ILogger <RedisService> logger, ShutdownService shutdown ) { _logger = logger; var redisHost = System.Environment.GetEnvironmentVariable("REDIS_HOST"); var redisPort = System.Environment.GetEnvironmentVariable("REDIS_PORT"); if (redisHost == null || redisHost == "") { redisHost = "localhost"; } if (redisPort == null || redisPort == "") { redisPort = "6379"; } Client = ConnectionMultiplexer.Connect($"{redisHost}:{redisPort}"); Client.ConnectionFailed += (object sender, ConnectionFailedEventArgs args) => { shutdown.HandleFailure($"Redis connection failure : {args.FailureType}"); }; }
private async void HandleResponseStream(AsyncServerStreamingCall <VotingRecord> call) { try { var readStream = call.ResponseStream; await foreach (var votingRecord in readStream.ReadAllAsync()) { var didProcess = await ProcessRecord(votingRecord); } } catch (Exception e) { _logger.LogError(e, "Error while processing vote stream"); } _shutdownService.HandleFailure("Response stream has ended"); }