示例#1
0
        private async Task ExecuteImp(IJobExecutionContext context)
        {
            //4 爬img
            var start = DateTime.Now;

            ShowAndLog($"爬img start:{start}");
            DishImgRawData  imgs            = GetDishDetails();
            ParallelOptions parallelOptions = new ParallelOptions()
            {
                MaxDegreeOfParallelism = 50,
            };

            Parallel.ForEach(imgs, parallelOptions
                             , (img) =>
            {
                try
                {
                    CrawlerHelper.DownloadImgAndSave(img);
                    Console.Write(".");
                }
                catch (System.Net.WebException ex)
                {
                    ShowAndLog($"{img.SourcrUrl}:{ex.Message} {ex.InnerException?.Message}");
                    Thread.Sleep(100);
                }
            }
                             );
            var end = DateTime.Now;

            ShowAndLog($"爬img end:{end} 耗时:{end.Subtract(start).TotalMinutes}");
        }