From 123a95c07cafa40067e85b682028c9a2a60c3cfd Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Tue, 29 Oct 2024 10:09:37 +0100 Subject: [PATCH] Refactor LocalScheduler task removal and disable multitenancy Refactored `RemoveScheduledTask` and `RemoveScheduledTasks` in `LocalScheduler.cs` to improve consistency and correctness in task management. Disabled multitenancy in `Program.cs` by setting `useMultitenancy` to false. --- src/apps/Elsa.Server.Web/Program.cs | 2 +- .../Elsa.Scheduling/Services/LocalScheduler.cs | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/apps/Elsa.Server.Web/Program.cs b/src/apps/Elsa.Server.Web/Program.cs index 94420da49..ae7a2ffa9 100644 --- a/src/apps/Elsa.Server.Web/Program.cs +++ b/src/apps/Elsa.Server.Web/Program.cs @@ -68,7 +68,7 @@ const bool useSignalR = true; const WorkflowRuntime workflowRuntime = WorkflowRuntime.ProtoActor; const DistributedCachingTransport distributedCachingTransport = DistributedCachingTransport.ProtoActor; const MassTransitBroker massTransitBroker = MassTransitBroker.Memory; -const bool useMultitenancy = true; +const bool useMultitenancy = false; const bool useAgents = true; const bool useSecrets = true; diff --git a/src/modules/Elsa.Scheduling/Services/LocalScheduler.cs b/src/modules/Elsa.Scheduling/Services/LocalScheduler.cs index 78c6103db..644433be9 100644 --- a/src/modules/Elsa.Scheduling/Services/LocalScheduler.cs +++ b/src/modules/Elsa.Scheduling/Services/LocalScheduler.cs @@ -66,11 +66,12 @@ public class LocalScheduler : IScheduler private void RemoveScheduledTask(string name) { - if (!_scheduledTasks.TryGetValue(name, out var existingScheduledTask)) - return; - - existingScheduledTask.Cancel(); - _scheduledTaskKeys.Remove(existingScheduledTask); + if (_scheduledTasks.TryGetValue(name, out var existingScheduledTask)) + { + _scheduledTaskKeys.Remove(existingScheduledTask); + _scheduledTasks.Remove(name); + existingScheduledTask.Cancel(); + } } private void RemoveScheduledTasks(IEnumerable keys) @@ -81,9 +82,9 @@ public class LocalScheduler : IScheduler foreach (var scheduledTask in scheduledTasks) { - scheduledTask.Cancel(); _scheduledTasks.RemoveWhere(x => x.Value == scheduledTask); _scheduledTaskKeys.Remove(scheduledTask); + scheduledTask.Cancel(); } } }