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); }
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); }
public HealthResult CheckHealth() { return(_busControl.CheckHealth()); }