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);
                }
            }
        }
Exemple #3
0
        private async Task UpdateCacheTask()
        {
            var observer = new AdHocConnectionStateObserver(OnConnectionStateChanged, OnCompleted);

            using (zooKeeperClient.OnConnectionStateChanged.Subscribe(observer))
            {
                while (state == Running)
                {
                    await UpdateCacheTaskIteration().ConfigureAwait(false);
                }
            }
        }