/// <summary> /// /// </summary> /// <returns></returns> private async Task RequestMoreCrawlDescriptions() { PipelinedCrawlDescription pipelinedCrawlDescription = _pipeline.Drain(); while (!pipelinedCrawlDescription.CrawlDescriptions.Any()) { int delay = (int)(pipelinedCrawlDescription.NextAvailability - DateTime.Now).TotalMilliseconds; Log.Information("No Crawl Descriptions Available. Draining again in {0}ms.", (delay < 0) ? 0 : delay); if (delay > 0) { await Task.Delay(delay); } pipelinedCrawlDescription = _pipeline.Drain(); } foreach (CrawlDescription crawl in pipelinedCrawlDescription.CrawlDescriptions) { _queue.Enqueue(crawl); } }