Exemple #1
0
        private void OnL3ConversationTrackingInactivityCheck(L3ConversationTrackingInactivityCheck inactivityCheck)
        {
            if (inactivityCheck.CurrentTimestampTicks <= this._lastActivityTimestampTicks + inactivityCheck.InactivityTimeoutTicks)
            {
                return;
            }

            this._logger.Debug($"Detected L3 conversation inactivity after {new TimeSpan(inactivityCheck.InactivityTimeoutTicks)}. Completing inactive L4 conversations ...");
            this.UpdateCurrentTimestampAndCompleteInactiveL4Conversations(inactivityCheck.CurrentTimestampTicks);
        }
Exemple #2
0
        private void CheckL3ConversationsInactivity(Frame frame)
        {
            var currentTimestampTicks = frame.TimestampTicks;

            if (this._lastInactivityCheckTimestampTicks == 0)
            {
                // Set for first frame
                this._lastInactivityCheckTimestampTicks = currentTimestampTicks;
                return;
            }
            if (currentTimestampTicks <= this._lastInactivityCheckTimestampTicks + this._inactivityCheckIntervalTicks)
            {
                return;
            }

            this._lastInactivityCheckTimestampTicks = currentTimestampTicks;

            var inactivityCheckRequest = new L3ConversationTrackingInactivityCheck(currentTimestampTicks, this._inactivityTimeoutTicks);

            foreach (var l3ConversationActor in this._l3Conversations.Values)
            {
                l3ConversationActor.Tell(inactivityCheckRequest);
            }
        }