Exemple #1
0
        /// <inheritdoc cref="IConsumersHealthCheckService.GetDisconnectedConsumersAsync" />
        public Task <IReadOnlyCollection <IConsumer> > GetDisconnectedConsumersAsync(ConsumerStatus minStatus)
        {
            // The check is skipped when the application is shutting down, because all consumers will be
            // disconnected and since the shutdown could take a while we don't want to report the application
            // as unhealthy.
            if (_applicationIsStopping)
            {
                return(Task.FromResult((IReadOnlyCollection <IConsumer>)Array.Empty <IConsumer>()));
            }

            IReadOnlyCollection <IConsumer> disconnectedConsumers =
                _brokerCollection.SelectMany(
                    broker => broker.Consumers.Where(consumer => consumer.StatusInfo.Status < minStatus))
                .ToList();

            return(Task.FromResult(disconnectedConsumers));
        }
Exemple #2
0
        /// <inheritdoc cref="IConsumersHealthCheckService.GetDisconnectedConsumersAsync" />
        public Task <IReadOnlyCollection <IConsumer> > GetDisconnectedConsumersAsync(
            ConsumerStatus minStatus,
            TimeSpan gracePeriod,
            Func <IConsumerEndpoint, bool>?endpointsFilter)
        {
            // The check is skipped when the application is shutting down, because all consumers will be
            // disconnected and since the shutdown could take a while we don't want to report the application
            // as unhealthy.
            if (_applicationIsStopping)
            {
                return(Task.FromResult((IReadOnlyCollection <IConsumer>)Array.Empty <IConsumer>()));
            }

            IReadOnlyCollection <IConsumer> disconnectedConsumers =
                _brokerCollection
                .SelectMany(
                    broker => GetDisconnectedConsumers(broker, minStatus, gracePeriod, endpointsFilter))
                .ToList();

            return(Task.FromResult(disconnectedConsumers));
        }