Beispiel #1
0
 private JobCompanyCrawler GetJob()
 {
     try
     {
         using (var model = _rabbitmqServer.CreateChannel())
         {
             var data = model.BasicGet(ConfigCrawler.QueueCompanyFindnew, true);
             return((data == null) ? null : JobCompanyCrawler.ParseFromJson(UTF8Encoding.UTF8.GetString(data.Body)));
         }
     }
     catch (Exception ex)
     {
         _log.Error(ex);
         return(null);
     }
 }
Beispiel #2
0
 public void Start()
 {
     _log.InfoFormat("Start consumer: {0} at queue {1}", "", _queueName);
     while (true)
     {
         try
         {
             _cancellationToken.ThrowIfCancellationRequested();
             JobCompanyCrawler jobCompany = GetJob();
             if (jobCompany != null)
             {
                 if (jobCompany.CheckRunning && CheckOtherRunning(jobCompany.CompanyId))
                 {
                     _log.Info(string.Format("Other running company: {0}", jobCompany));
                 }
                 else if (!_productAdapter.AllowCrawlReload(jobCompany.CompanyId))
                 {
                     _log.Info("Not allow crawler");
                     _redisWaitCrawler.DeleteWaitReload(new List <long> {
                         jobCompany.CompanyId
                     });
                 }
                 else
                 {
                     using (var worker = new WorkerReload(jobCompany.CompanyId, _nameThread))
                     {
                         worker.StartCrawler();
                     }
                 }
             }
             else
             {
                 _log.Info("No company to crawler");
                 Thread.Sleep(60000);
             }
         }
         catch (OperationCanceledException task)
         {
             break;
         }
         catch (Exception ex1)
         {
             _log.Error(ex1);
             Thread.Sleep(10000);
         }
     }
 }