Add yield for orleans + 1min to 2h timeout for grain message + more exception send to sentry

This commit is contained in:
2025-11-07 12:40:24 +07:00
parent bc4c4c7684
commit 2dc34f07d8
3 changed files with 54 additions and 16 deletions

View File

@@ -238,7 +238,8 @@ public static class ApiBootstrap
.Configure<MessagingOptions>(options =>
{
// Configure messaging for better reliability with increased timeouts
options.ResponseTimeout = TimeSpan.FromSeconds(60);
// Set to 2 hours to support long-running backtests that can take 47+ minutes
options.ResponseTimeout = TimeSpan.FromHours(2);
options.DropExpiredMessages = true;
})
.Configure<ClusterMembershipOptions>(options =>
@@ -265,7 +266,9 @@ public static class ApiBootstrap
siloBuilder.Configure<GrainCollectionOptions>(options =>
{
// Enable grain collection for active grains
options.CollectionAge = TimeSpan.FromMinutes(10);
// Set to 2.5 hours to allow long-running backtests (up to 2 hours) to complete
// without being collected prematurely
options.CollectionAge = TimeSpan.FromMinutes(150); // 2.5 hours
options.CollectionQuantum = TimeSpan.FromMinutes(1);
});
}
@@ -281,7 +284,16 @@ public static class ApiBootstrap
}
siloBuilder
.ConfigureLogging(logging => logging.SetMinimumLevel(LogLevel.Information));
.ConfigureLogging(logging =>
{
logging.SetMinimumLevel(LogLevel.Information);
// Reduce verbosity of Orleans status update messages for long-running operations
// These are informational and can be very verbose during long backtests
logging.AddFilter("Orleans.Runtime.Messaging.IncomingMessageAcceptor", LogLevel.Warning);
logging.AddFilter("Orleans.Runtime.Messaging.MessageCenter", LogLevel.Warning);
// Keep important Orleans logs but reduce status update noise
logging.AddFilter("Microsoft.Orleans.Runtime.Messaging", LogLevel.Warning);
});
// Only enable dashboard in development to avoid shutdown issues
if (!isProduction)