private async Task BeaconTask() { var observer = new AdHocConnectionStateObserver(OnConnectionStateChanged, OnCompleted); using (zooKeeperClient.OnConnectionStateChanged.Subscribe(observer)) { log.Info( "Registering an instance of application '{Application}' in environment '{Environment}' with id = '{Instance}'.", replicaInfo.Application, replicaInfo.Environment, replicaInfo.Replica); while (isRunning) { var budget = TimeBudget.StartNew(settings.MinimumTimeBetweenIterations); await BeaconTaskIteration().ConfigureAwait(false); if (!budget.HasExpired) { await Task.Delay(budget.Remaining, stopCancellationToken.Token).SilentlyContinue().ConfigureAwait(false); } } } }
private async Task DeleteNodeTask() { var observer = new AdHocConnectionStateObserver(null, OnCompleted); using (zooKeeperClient.OnConnectionStateChanged.Subscribe(observer)) { while (!clientDisposed && !await DeleteNodeAsync().ConfigureAwait(false)) { await Task.Delay(settings.DeleteNodeIterationPeriod).ConfigureAwait(false); } } }
private async Task UpdateCacheTask() { var observer = new AdHocConnectionStateObserver(OnConnectionStateChanged, OnCompleted); using (zooKeeperClient.OnConnectionStateChanged.Subscribe(observer)) { while (state == Running) { await UpdateCacheTaskIteration().ConfigureAwait(false); } } }