performance cache + queued character data application

This commit is contained in:
2025-12-05 10:49:30 +09:00
parent 1c36db97dc
commit 541d17132d
6 changed files with 324 additions and 8 deletions

View File

@@ -20,6 +20,7 @@ public sealed partial class PairCoordinator : MediatorSubscriberBase
private readonly PairManager _pairManager;
private readonly PairLedger _pairLedger;
private readonly ServerConfigurationManager _serverConfigurationManager;
private readonly PairPerformanceMetricsCache _metricsCache;
private readonly ConcurrentDictionary<string, OnlineUserCharaDataDto> _pendingCharacterData = new(StringComparer.Ordinal);
public PairCoordinator(
@@ -29,7 +30,8 @@ public sealed partial class PairCoordinator : MediatorSubscriberBase
PairHandlerRegistry handlerRegistry,
PairManager pairManager,
PairLedger pairLedger,
ServerConfigurationManager serverConfigurationManager)
ServerConfigurationManager serverConfigurationManager,
PairPerformanceMetricsCache metricsCache)
: base(logger, mediator)
{
_logger = logger;
@@ -39,6 +41,7 @@ public sealed partial class PairCoordinator : MediatorSubscriberBase
_pairManager = pairManager;
_pairLedger = pairLedger;
_serverConfigurationManager = serverConfigurationManager;
_metricsCache = metricsCache;
mediator.Subscribe<ActiveServerChangedMessage>(this, msg => HandleActiveServerChange(msg.ServerUrl));
mediator.Subscribe<DisconnectedMessage>(this, _ => HandleDisconnected());
@@ -128,6 +131,7 @@ public sealed partial class PairCoordinator : MediatorSubscriberBase
_handlerRegistry.ResetAllHandlers();
_pairManager.ClearAll();
_pendingCharacterData.Clear();
_metricsCache.ClearAll();
_mediator.Publish(new ClearProfileUserDataMessage());
_mediator.Publish(new ClearProfileGroupDataMessage());
PublishPairDataChanged(groupChanged: true);