private async Task fetchEvents(IProjectionTrack track, DaemonLifecycle lifecycle) { while (!_token.IsCancellationRequested && State == FetcherState.Active) { var page = await FetchNextPage(_lastEncountered).ConfigureAwait(false); if (page.ShouldPause()) { if (lifecycle == DaemonLifecycle.Continuous) { State = FetcherState.Waiting; _logger.PausingFetching(track, _lastEncountered); #pragma warning disable 4014 Task.Delay(_settings.FetchingCooldown, _token).ContinueWith(t => { Start(track, lifecycle, _token); }, _token); #pragma warning restore 4014 } else { State = FetcherState.Paused; _logger.FetchingIsAtEndOfEvents(track); track.Finished(page.Ending()); _lastEncountered = page.LastEncountered(); track.QueuePage(page); break; } } _lastEncountered = page.LastEncountered(); track.QueuePage(page); } }
private async Task fetchEvents(IProjectionTrack track, DaemonLifecycle lifecycle) { while (!_token.IsCancellationRequested && State == FetcherState.Active) { var page = await FetchNextPage(_lastEncountered).ConfigureAwait(false); if (page.Count == 0) { if (lifecycle == DaemonLifecycle.Continuous) { State = FetcherState.Waiting; _logger.PausingFetching(track, _lastEncountered); #pragma warning disable 4014 Task.Delay(_settings.FetchingCooldown, _token).ContinueWith(t => { Start(track, lifecycle, _token); }, _token); #pragma warning restore 4014 } else { State = FetcherState.Paused; _logger.FetchingIsAtEndOfEvents(track); track.Finished(_lastEncountered); break; } } else { _lastEncountered = page.To; track.QueuePage(page); } } }