From d4c8a15f502f13ae1f2597e8ca4a2f65342caec7 Mon Sep 17 00:00:00 2001 From: Stanley Dimant Date: Fri, 12 Aug 2022 00:26:27 +0200 Subject: [PATCH] update status via task, update nuget packages --- .../Discord/DiscordBot.cs | 21 ++++++++++++------- .../MareSynchronosServer.csproj | 12 +++++------ .../MareSynchronosServer/Startup.cs | 3 --- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/MareSynchronosServer/MareSynchronosServer/Discord/DiscordBot.cs b/MareSynchronosServer/MareSynchronosServer/Discord/DiscordBot.cs index 2672b12..a7db726 100644 --- a/MareSynchronosServer/MareSynchronosServer/Discord/DiscordBot.cs +++ b/MareSynchronosServer/MareSynchronosServer/Discord/DiscordBot.cs @@ -30,8 +30,8 @@ namespace MareSynchronosServer.Discord private string authToken = string.Empty; DiscordSocketClient discordClient; ConcurrentDictionary DiscordLodestoneMapping = new(); - private Timer _timer; private CancellationTokenSource verificationTaskCts; + private CancellationTokenSource updateStatusCts; private readonly string[] LodestoneServers = new[] { "eu", "na", "jp", "fr", "de" }; private readonly ConcurrentQueue verificationQueue = new(); @@ -374,9 +374,8 @@ namespace MareSynchronosServer.Discord discordClient.SlashCommandExecuted += DiscordClient_SlashCommandExecuted; discordClient.ModalSubmitted += DiscordClient_ModalSubmitted; - _timer = new Timer(UpdateStatus, null, TimeSpan.Zero, TimeSpan.FromSeconds(15)); - _ = ProcessQueueWork(); + _ = UpdateStatusAsync(); } } @@ -404,14 +403,20 @@ namespace MareSynchronosServer.Discord } } - private void UpdateStatus(object state) + private async Task UpdateStatusAsync() { - using var scope = services.CreateScope(); - using var db = scope.ServiceProvider.GetService(); + updateStatusCts = new(); + while (!updateStatusCts.IsCancellationRequested) + { + using var scope = services.CreateScope(); + using var db = scope.ServiceProvider.GetService(); - var users = db.Users.Count(c => c.CharacterIdentification != null); + var users = db.Users.Count(c => c.CharacterIdentification != null); - discordClient.SetActivityAsync(new Game("Mare for " + users + " Users")); + await discordClient.SetActivityAsync(new Game("Mare for " + users + " Users")); + + await Task.Delay(TimeSpan.FromSeconds(15)); + } } public async Task StopAsync(CancellationToken cancellationToken) diff --git a/MareSynchronosServer/MareSynchronosServer/MareSynchronosServer.csproj b/MareSynchronosServer/MareSynchronosServer/MareSynchronosServer.csproj index 9e45326..1b774cf 100644 --- a/MareSynchronosServer/MareSynchronosServer/MareSynchronosServer.csproj +++ b/MareSynchronosServer/MareSynchronosServer/MareSynchronosServer.csproj @@ -11,18 +11,18 @@ - + - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/MareSynchronosServer/MareSynchronosServer/Startup.cs b/MareSynchronosServer/MareSynchronosServer/Startup.cs index 1447493..fcf2765 100644 --- a/MareSynchronosServer/MareSynchronosServer/Startup.cs +++ b/MareSynchronosServer/MareSynchronosServer/Startup.cs @@ -38,8 +38,6 @@ namespace MareSynchronosServer { services.AddHttpContextAccessor(); - services.AddMemoryCache(); - services.Configure(Configuration.GetSection("IpRateLimiting")); services.Configure(Configuration.GetSection("IpRateLimitPolicies")); @@ -61,7 +59,6 @@ namespace MareSynchronosServer services.AddHostedService(provider => provider.GetService()); services.AddHostedService(); - services.AddDatabaseDeveloperPageExceptionFilter(); services.AddAuthentication(options => { options.DefaultScheme = SecretKeyAuthenticationHandler.AuthScheme;