From b8522ccf6c33f5605dbe6b491efae04c478d8d65 Mon Sep 17 00:00:00 2001 From: vnugent Date: Fri, 27 Jan 2023 21:13:17 -0500 Subject: Object cache overhaul and logger updates --- libs/VNLib.Plugins.Sessions.Cache.Client/src/SessionCacheClient.cs | 7 +++++-- .../src/VNLib.Plugins.Sessions.Cache.Client.csproj | 2 +- libs/VNLib.Plugins.Sessions.Memory/src/MemorySessionEntrypoint.cs | 2 +- libs/VNLib.Plugins.Sessions.OAuth/src/O2SessionProviderEntry.cs | 2 +- libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProviderEntry.cs | 2 +- plugins/SessionProvider/src/LocalizedLogProvider.cs | 5 +++++ 6 files changed, 14 insertions(+), 6 deletions(-) diff --git a/libs/VNLib.Plugins.Sessions.Cache.Client/src/SessionCacheClient.cs b/libs/VNLib.Plugins.Sessions.Cache.Client/src/SessionCacheClient.cs index 800ad66..b729803 100644 --- a/libs/VNLib.Plugins.Sessions.Cache.Client/src/SessionCacheClient.cs +++ b/libs/VNLib.Plugins.Sessions.Cache.Client/src/SessionCacheClient.cs @@ -66,7 +66,7 @@ namespace VNLib.Plugins.Sessions.Cache.Client } /// - protected override void Evicted(KeyValuePair evicted) + protected override void Evicted(ref KeyValuePair evicted) { //add to queue, the list lock should be held during this operatio _ = ExpiredSessions.TryEnque(evicted.Value); @@ -77,8 +77,11 @@ namespace VNLib.Plugins.Sessions.Cache.Client { foreach (KeyValuePair value in List) { - Evicted(value); + KeyValuePair onStack = value; + + Evicted(ref onStack); } + Clear(); } diff --git a/libs/VNLib.Plugins.Sessions.Cache.Client/src/VNLib.Plugins.Sessions.Cache.Client.csproj b/libs/VNLib.Plugins.Sessions.Cache.Client/src/VNLib.Plugins.Sessions.Cache.Client.csproj index f41f9f8..8972956 100644 --- a/libs/VNLib.Plugins.Sessions.Cache.Client/src/VNLib.Plugins.Sessions.Cache.Client.csproj +++ b/libs/VNLib.Plugins.Sessions.Cache.Client/src/VNLib.Plugins.Sessions.Cache.Client.csproj @@ -34,7 +34,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/libs/VNLib.Plugins.Sessions.Memory/src/MemorySessionEntrypoint.cs b/libs/VNLib.Plugins.Sessions.Memory/src/MemorySessionEntrypoint.cs index 57c3898..6cd25ab 100644 --- a/libs/VNLib.Plugins.Sessions.Memory/src/MemorySessionEntrypoint.cs +++ b/libs/VNLib.Plugins.Sessions.Memory/src/MemorySessionEntrypoint.cs @@ -76,7 +76,7 @@ namespace VNLib.Plugins.Sessions.Memory _sessions = new(config); //Begin listening for expired records - _ = plugin.DeferTask(() => _sessions.CleanupExiredAsync(localized, plugin.UnloadToken)); + _ = plugin.ObserveTask(() => _sessions.CleanupExiredAsync(localized, plugin.UnloadToken)); //Schedule garbage collector plugin.ScheduleInterval(this, TimeSpan.FromMinutes(1)); diff --git a/libs/VNLib.Plugins.Sessions.OAuth/src/O2SessionProviderEntry.cs b/libs/VNLib.Plugins.Sessions.OAuth/src/O2SessionProviderEntry.cs index b8769d0..68a715e 100644 --- a/libs/VNLib.Plugins.Sessions.OAuth/src/O2SessionProviderEntry.cs +++ b/libs/VNLib.Plugins.Sessions.OAuth/src/O2SessionProviderEntry.cs @@ -110,7 +110,7 @@ namespace VNLib.Plugins.Sessions.OAuth plugin.ScheduleInterval(_sessions, cleanupInterval); //Wait and cleanup expired sessions - _ = plugin.DeferTask(() => _sessions.CleanupExpiredSessionsAsync(localized, plugin.UnloadToken), 1000); + _ = plugin.ObserveTask(() => _sessions.CleanupExpiredSessionsAsync(localized, plugin.UnloadToken), 1000); localized.Information("Session provider loaded"); diff --git a/libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProviderEntry.cs b/libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProviderEntry.cs index 4fb1fae..1aa92a7 100644 --- a/libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProviderEntry.cs +++ b/libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProviderEntry.cs @@ -78,7 +78,7 @@ namespace VNLib.Plugins.Sessions.VNCache _sessions = new(cacheStore, cacheLimit, maxConnections, idFactory); //Load and run cached sessions on deferred task lib - _ = plugin.DeferTask(() => _sessions.CleanupExpiredSessionsAsync(localized, plugin.UnloadToken), 1000); + _ = plugin.ObserveTask(() => _sessions.CleanupExpiredSessionsAsync(localized, plugin.UnloadToken), 1000); localized.Information("Session provider loaded"); } diff --git a/plugins/SessionProvider/src/LocalizedLogProvider.cs b/plugins/SessionProvider/src/LocalizedLogProvider.cs index 4062a19..d0dce8d 100644 --- a/plugins/SessionProvider/src/LocalizedLogProvider.cs +++ b/plugins/SessionProvider/src/LocalizedLogProvider.cs @@ -49,6 +49,11 @@ namespace VNLib.Plugins.Essentials.Sessions return Log.GetLogProvider(); } + public bool IsEnabled(LogLevel level) + { + return Log.IsEnabled(level); + } + public void Write(LogLevel level, string value) { Log.Write(level, $"[{LogPrefix}]: {value}"); -- cgit