Fix update agent save + revert market in redis
This commit is contained in:
@@ -161,6 +161,21 @@ public class AgentGrain : Grain, IAgentGrain
|
||||
}
|
||||
}
|
||||
|
||||
[OneWay]
|
||||
public async Task ForceUpdateSummary()
|
||||
{
|
||||
// Check if last update was more than 2 minutes ago
|
||||
if (_state.State.LastSummaryUpdateTime.HasValue &&
|
||||
DateTime.UtcNow - _state.State.LastSummaryUpdateTime.Value < TimeSpan.FromMinutes(2))
|
||||
{
|
||||
_logger.LogDebug("Skipping summary update for agent {UserId} - last update was {TimeAgo} ago",
|
||||
this.GetPrimaryKeyLong(), DateTime.UtcNow - _state.State.LastSummaryUpdateTime.Value);
|
||||
return;
|
||||
}
|
||||
|
||||
await UpdateSummary();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the agent summary by recalculating from position data (used for initialization or manual refresh)
|
||||
/// </summary>
|
||||
@@ -274,6 +289,10 @@ public class AgentGrain : Grain, IAgentGrain
|
||||
// Save summary to database
|
||||
await _agentService.SaveOrUpdateAgentSummary(summary);
|
||||
|
||||
// Update last summary update time
|
||||
_state.State.LastSummaryUpdateTime = DateTime.UtcNow;
|
||||
await _state.WriteStateAsync();
|
||||
|
||||
// Insert balance tracking data
|
||||
InsertBalanceTrackingData(totalBalance, botsAllocationUsdValue, netPnL, usdcWalletValue,
|
||||
usdcInPositionsValue);
|
||||
|
||||
@@ -845,7 +845,7 @@ public class LiveTradingBotGrain : Grain, ILiveTradingBotGrain, IRemindable
|
||||
// Pass the complete Bot object to BotService for saving
|
||||
var success = await ServiceScopeHelpers.WithScopedService<IBotService, bool>(_scopeFactory,
|
||||
async (botService) => { return await botService.SaveBotStatisticsAsync(bot); });
|
||||
|
||||
|
||||
if (success)
|
||||
{
|
||||
_logger.LogDebug(
|
||||
@@ -857,6 +857,12 @@ public class LiveTradingBotGrain : Grain, ILiveTradingBotGrain, IRemindable
|
||||
{
|
||||
_logger.LogWarning("Failed to save bot statistics for bot {BotId}", _state.State.Identifier);
|
||||
}
|
||||
|
||||
// await ServiceScopeHelpers.WithScopedService<IGrainFactory>(_scopeFactory, async grainFactory =>
|
||||
// {
|
||||
// var agentGrain = grainFactory.GetGrain<IAgentGrain>(_state.State.User.Id);
|
||||
// await agentGrain.ForceUpdateSummary();
|
||||
// });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user