From e6a02cd31ecd0710f19fa996e3e779674c6e98b0 Mon Sep 17 00:00:00 2001 From: Gerard Smit Date: Tue, 7 Jul 2020 01:45:01 +0200 Subject: [PATCH] Use Redis when the connection string is configured --- src/Miki/MikiBotApp.cs | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/src/Miki/MikiBotApp.cs b/src/Miki/MikiBotApp.cs index cd974ebd..de5fc0c9 100644 --- a/src/Miki/MikiBotApp.cs +++ b/src/Miki/MikiBotApp.cs @@ -156,6 +156,23 @@ public override async Task ConfigureAsync(ServiceCollection serviceCollection) serviceCollection.AddSingleton( s => new DiscordApiClient(s.GetService().Token, s.GetService())); + if (!string.IsNullOrEmpty(configuration.Configuration.RedisConnectionString)) + { + serviceCollection.AddSingleton( + new RedisConnectionPool(configuration.Configuration.RedisConnectionString)); + + serviceCollection.AddTransient( + x => x.GetRequiredService().Get()); + + serviceCollection.AddTransient(); + serviceCollection.AddTransient(); + } + else + { + serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); + } + if(configuration.IsSelfHosted) { serviceCollection.AddSingleton( @@ -167,10 +184,7 @@ public override async Task ConfigureAsync(ServiceCollection serviceCollection) Token = configuration.Configuration.Token, AllowNonDispatchEvents = true, Intents = GatewayIntents.AllDefault | GatewayIntents.GuildMembers - })); - - serviceCollection.AddSingleton(); - serviceCollection.AddSingleton(); + })); var splitConfig = new ConfigurationOptions { @@ -229,15 +243,11 @@ public override async Task ConfigureAsync(ServiceCollection serviceCollection) serviceCollection.AddSingleton(consumer); - serviceCollection.AddSingleton( - new RedisConnectionPool(configuration.Configuration.RedisConnectionString)); - - serviceCollection.AddTransient( - x => x.GetRequiredService().Get()); - - serviceCollection.AddTransient(); - serviceCollection.AddTransient(); - + if (!string.IsNullOrEmpty(configuration.Configuration.RedisConnectionString)) + { + Log.Warning("Self-host is disabled but Redis wasn't configured. Miki is running on in-memory cache!"); + } + ISplitClient client = null; if(!string.IsNullOrEmpty(configuration.Configuration.OptionalValues?.SplitioSdkKey)) {