示例#1
0
 public void Start()
 {
     _log.InfoFormat("Start consumer FindNew");
     while (true)
     {
         try
         {
             _token.ThrowIfCancellationRequested();
             JobCompanyCrawler jobCompanyCrawler = GetJob();
             if (jobCompanyCrawler != null)
             {
                 if (jobCompanyCrawler.CheckRunning && CheckOtherRunning(jobCompanyCrawler.CompanyId))
                 {
                     _log.Info(string.Format("Other running company: {0}", jobCompanyCrawler));
                 }
                 else if (!_productAdapter.AllowCrawlFindNew(jobCompanyCrawler.CompanyId))
                 {
                     _log.Info("Not allow crawler");
                     _redisWaitCrawler.DeleteWaitFindNew(new List <long> {
                         jobCompanyCrawler.CompanyId
                     });
                 }
                 else
                 {
                     using (var worker = new WorkerFindNew(jobCompanyCrawler.CompanyId, _nameThread))
                     {
                         worker.StartCrawler();
                     }
                 }
             }
             else
             {
                 Thread.Sleep(60000);
                 _log.Info("No company to crawler");
             }
         }
         catch (OperationCanceledException task)
         {
             break;
         }
         catch (Exception ex1)
         {
             _log.Error(ex1);
         }
     }
 }