diff --git a/src/Infrastructure/BotSharp.OpenAPI/BackgroundServices/ConversationTimeoutService.cs b/src/Infrastructure/BotSharp.OpenAPI/BackgroundServices/ConversationTimeoutService.cs index 7dc0b422..fe149ff0 100644 --- a/src/Infrastructure/BotSharp.OpenAPI/BackgroundServices/ConversationTimeoutService.cs +++ b/src/Infrastructure/BotSharp.OpenAPI/BackgroundServices/ConversationTimeoutService.cs @@ -21,11 +21,11 @@ namespace BotSharp.OpenAPI.BackgroundServices while (true) { stoppingToken.ThrowIfCancellationRequested(); - var delay = Task.Delay(TimeSpan.FromMinutes(1)); + var delay = Task.Delay(TimeSpan.FromHours(1)); try { - await CleanIdleConversationsAsync(); await CloseIdleConversationsAsync(TimeSpan.FromMinutes(10)); + await CleanIdleConversationsAsync(); } catch (Exception ex) diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Conversation.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Conversation.cs index ee40d1d6..047b7884 100644 --- a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Conversation.cs +++ b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Conversation.cs @@ -276,6 +276,7 @@ public partial class MongoRepository public List GetIdleConversations(int batchSize, int messageLimit, int bufferHours) { var page = 1; + var pageLimit = 10; var batchLimit = 50; var utcNow = DateTime.UtcNow; var conversationIds = new List(); @@ -285,7 +286,7 @@ public partial class MongoRepository batchSize = batchLimit; } - while (true) + while (true && page < pageLimit) { var skip = (page - 1) * batchSize; var candidates = _dc.Conversations.AsQueryable()