From 5216a0ae8746ab742c9c9403bc8f9e7ab8cab5c4 Mon Sep 17 00:00:00 2001 From: cryptooda Date: Mon, 15 Sep 2025 01:54:51 +0700 Subject: [PATCH] Removed reminder when stopped --- .../Bots/Grains/LiveTradingBotGrain.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Managing.Application/Bots/Grains/LiveTradingBotGrain.cs b/src/Managing.Application/Bots/Grains/LiveTradingBotGrain.cs index 3f7a8ee1..30c5cd8d 100644 --- a/src/Managing.Application/Bots/Grains/LiveTradingBotGrain.cs +++ b/src/Managing.Application/Bots/Grains/LiveTradingBotGrain.cs @@ -102,6 +102,12 @@ public class LiveTradingBotGrain : Grain, ILiveTradingBotGrain, IRemindable // Now, we can proceed with resuming the bot. await ResumeBotInternalAsync(botStatus); } + else if (botStatus == BotStatus.Stopped) + { + // If the status is stopped, ensure the reminder is unregistered + await UnregisterReminder(); + _logger.LogInformation("LiveTradingBotGrain {GrainId} status is stopped, reminder unregistered", botId); + } } private async Task ResumeBotInternalAsync(BotStatus previousStatus) @@ -172,8 +178,7 @@ public class LiveTradingBotGrain : Grain, ILiveTradingBotGrain, IRemindable private async Task RegisterReminder() { - var reminderPeriod = TimeSpan.FromMinutes(2); - await this.RegisterOrUpdateReminder(_reminderName, reminderPeriod, reminderPeriod); + await this.RegisterOrUpdateReminder(_reminderName, TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(5)); } /// @@ -185,7 +190,7 @@ public class LiveTradingBotGrain : Grain, ILiveTradingBotGrain, IRemindable if (_timer != null) return; - var botOptions = GrainHelpers.GetDynamicRandomizedTimerOptions(TimeSpan.FromMinutes(1), 20); + var botOptions = GrainHelpers.GetDynamicRandomizedTimerOptions(TimeSpan.FromMinutes(1), 100); _timer = this.RegisterGrainTimer( async _ => await ExecuteBotCycle(), @@ -205,6 +210,7 @@ public class LiveTradingBotGrain : Grain, ILiveTradingBotGrain, IRemindable if (botStatus == BotStatus.Stopped) { _logger.LogInformation("Bot {GrainId} is already stopped", this.GetPrimaryKey()); + await UnregisterReminder(); return; }