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); }
public void Disconnect() { _handle?.Disconnect(); Topology.Valid = false; }