コード例 #1
0
        /// <summary>
        /// Handles an event message and queues the appropriate events via the subscriptions.
        /// </summary>
        /// <param name="message">The event message.</param>
        public void OnEventMessage(ClientMessage message)
        {
            HConsole.WriteLine(this, "Handle event message");

            if (!_correlatedSubscriptions.TryGetValue(message.CorrelationId, out var subscription))
            {
                _clusterState.Instrumentation.CountMissedEvent(message);
                _logger.LogWarning($"No event handler for [{message.CorrelationId}]");
                HConsole.WriteLine(this, $"No event handler for [{message.CorrelationId}]");
                return;
            }

            // schedule the event - will run async, but serialized per-partition
            _scheduler.Add(subscription, message);
        }