diff --git a/ChatRoom/ChatRoom.Common/Orleans/ChannelGrain.cs b/ChatRoom/ChatRoom.Common/Orleans/ChannelGrain.cs index 6b5952b..933d3e0 100644 --- a/ChatRoom/ChatRoom.Common/Orleans/ChannelGrain.cs +++ b/ChatRoom/ChatRoom.Common/Orleans/ChannelGrain.cs @@ -24,6 +24,7 @@ public ChannelGrain( { _logger = logger; _config = config; + this.DelayDeactivation(TimeSpan.MaxValue); } public override async Task OnActivateAsync(CancellationToken cancellationToken) @@ -31,22 +32,6 @@ public override async Task OnActivateAsync(CancellationToken cancellationToken) _logger.LogInformation("Channel {ChannelId} activated", this.GetPrimaryKeyString()); } - public override Task OnDeactivateAsync(DeactivationReason reason, CancellationToken cancellationToken) - { - if (reason.ReasonCode == DeactivationReasonCode.ActivationIdle) - { - _logger?.LogInformation("Channel {ChannelId} deactivated due to inactivity", this.GetPrimaryKeyString()); - _logger?.LogInformation("Delaying deactivation for 30 seconds"); - this.DelayDeactivation(TimeSpan.FromSeconds(30)); - - return Task.CompletedTask; - } - - var roomID = this.GetPrimaryKeyString(); - _logger?.LogInformation($"Channel {roomID} deactivated because {reason.Description} and {reason.ReasonCode}"); - return base.OnDeactivateAsync(reason, cancellationToken); - } - public async Task Delete() { _logger.LogInformation("Channel {ChannelId} deactivated", this.GetPrimaryKeyString()); diff --git a/ChatRoom/ChatRoom.Common/Orleans/RoomGrain.cs b/ChatRoom/ChatRoom.Common/Orleans/RoomGrain.cs index 011fcdd..6006982 100644 --- a/ChatRoom/ChatRoom.Common/Orleans/RoomGrain.cs +++ b/ChatRoom/ChatRoom.Common/Orleans/RoomGrain.cs @@ -17,25 +17,10 @@ public RoomGrain( ILogger? logger = null) : base() { + this.DelayDeactivation(TimeSpan.MaxValue); _logger = logger; } - public override Task OnDeactivateAsync(DeactivationReason reason, CancellationToken cancellationToken) - { - if (reason.ReasonCode == DeactivationReasonCode.ActivationIdle) - { - _logger?.LogInformation("Room {RoomName} deactivated due to inactivity", this.GrainKey); - _logger?.LogInformation("Delaying deactivation for 30 seconds"); - this.DelayDeactivation(TimeSpan.FromSeconds(30)); - - return Task.CompletedTask; - } - - var roomID = this.GetPrimaryKeyString(); - _logger?.LogInformation($"Room {roomID} deactivated because {reason.Description} and {reason.ReasonCode}"); - return base.OnDeactivateAsync(reason, cancellationToken); - } - public virtual string GrainKey => this.GetPrimaryKeyString(); public Task GetMembers() => Task.FromResult(_agents.Keys.ToArray());