public static async Task <BusHealthStatus> WaitForHealthStatus(this IBusControl busControl, BusHealthStatus expectedStatus,
                                                                       CancellationToken cancellationToken)
        {
            var result = busControl.CheckHealth();

            while (result.Status != expectedStatus)
            {
                cancellationToken.ThrowIfCancellationRequested();

                await Task.Delay(100, cancellationToken).ConfigureAwait(false);

                result = busControl.CheckHealth();
            }

            return(result.Status);
        }
Esempio n. 2
0
        async Task WaitForHealthyBus(CancellationToken cancellationToken)
        {
            BusHealthResult result;

            do
            {
                result = _bus.CheckHealth();

                await Task.Delay(100, cancellationToken);
            } while (result.Status != BusHealthStatus.Healthy);
        }
        public static async Task <BusHealthStatus> WaitForHealthStatus(this IBusControl busControl, BusHealthStatus expectedStatus, TimeSpan timeout)
        {
            var expiresAt = DateTime.UtcNow + timeout;

            var result = busControl.CheckHealth();

            while (result.Status != expectedStatus)
            {
                if (DateTime.UtcNow >= expiresAt)
                {
                    return(result.Status);
                }

                await Task.Delay(100).ConfigureAwait(false);

                result = busControl.CheckHealth();
            }

            return(result.Status);
        }
Esempio n. 4
0
 public HealthResult CheckHealth()
 {
     return(_busControl.CheckHealth());
 }