protected override async Task StopAgent(StopContext context)
            {
                LogContext.SetCurrentIfNull(_context.LogContext);

                _channel.Writer.Complete();

                await _channel.Reader.Completion.ConfigureAwait(false);

                await _consumeDispatcher.ConfigureAwait(false);

                var metrics   = _dispatcher.GetMetrics();
                var completed = new ReceiveTransportCompletedEvent(_context.InputAddress, metrics);

                await _context.TransportObservers.Completed(completed).ConfigureAwait(false);

                LogContext.Debug?.Log("Consumer completed {InputAddress}: {DeliveryCount} received, {ConcurrentDeliveryCount} concurrent",
                                      _context.InputAddress, metrics.DeliveryCount, metrics.ConcurrentDeliveryCount);

                _topologyHandle?.Disconnect();

                await base.StopAgent(context).ConfigureAwait(false);
            }
Esempio n. 2
0
            public void Disconnect()
            {
                _handle?.Disconnect();

                Topology.Valid = false;
            }