Example #1
0
 private void Init()
 {
     _redisDesHash              = CacheProductDesciptioHash.Instance();
     _jobClientLogChangePrice   = new MqLogChangePrice();
     _jobClientLogChangeProduct = MQLogChangeProduct.Instance();
     _dicDuplicate              = new Dictionary <long, long>();
     _dicCacheProduct           = new Dictionary <long, ProductCache>();
     _linksQueue             = new Queue <NSCrawler.Job>();
     _productAdapter         = new ProductAdapter(new SqlDb(Server.ConnectionString));
     _redisWaitCrawler       = RedisCompanyWaitCrawler.Instance();
     _redisProduct           = RedisCacheProductInfo.Instance();
     _redisProductLastUpdate = RedisLastUpdateProduct.Instance();
     _publiserDesciption     = new PublisherDesciption();
 }
Example #2
0
        public bool Init()
        {
            try
            {
                _cacheWaitCrawler = RedisCompanyWaitCrawler.Instance();
                _redisLastCrl     = RedisLastUpdateProduct.Instance();
                _config           = new Configuration(_companyId, true);
                _company          = new Company(_companyId);
                _cacheDesHash     = CacheProductDesciptioHash.Instance();

                var rabbitMQCrawler = RabbitMQManager.GetRabbitMQServer(ConfigCrawler.KeyRabbitMqCrawler);
                _producerReportError       = new ProducerBasic(rabbitMQCrawler, ConfigCrawler.ExchangeErorrCrawler, ConfigCrawler.RoutingKeyErrorCrawler);
                _producerProductChange     = new ProducerBasic(rabbitMQCrawler, ConfigCrawler.ExchangeChangeProduct, ConfigCrawler.RoutingkeyChangeProduct);
                _producerDuplicateProduct  = new ProducerBasic(rabbitMQCrawler, ConfigCrawler.ExchangeDuplicateProductToCache, ConfigCrawler.ExchangeDuplicateProductToCache);
                _producerPushCompanyReload = new ProducerBasic(rabbitMQCrawler, ConfigCrawler.ExchangeCompanyReload, ConfigCrawler.RoutingkeyCompanyReload);
                _producerEndCrawler        = new ProducerBasic(rabbitMQCrawler, ConfigCrawler.ExchangeEndSession, ConfigCrawler.RoutingEndSession);

                _cacheCheckDelete = CacheTrackDeleteProduct.Instance();
                _cacheProductHash = CacheProductHash.Instance();
                _dicTrackDie      = _cacheCheckDelete.GetDicTrackOfCompany(_companyId);

                _dicDuplicate    = new Dictionary <long, long>();
                _dicCacheProduct = new Dictionary <long, ProductHash>();
                _dicHashDesc     = new Dictionary <long, long>();
                _dicCacheProduct = new Dictionary <long, ProductHash>();
                _linksQueue      = new Queue <Job>();



                _timeStart    = DateTime.Now;
                _countChange  = 0;
                _countVisited = 0;
                return(true);
            }
            catch (Exception ex)
            {
                _log.Error(ex);

                if (_producerEndCrawler != null)
                {
                    _producerEndCrawler.PublishString(new CrawlerSessionLog()
                    {
                        CompanyId              = _companyId,
                        CountChange            = 0,
                        CountProduct           = 0,
                        CountVisited           = 0,
                        Domain                 = "",
                        EndAt                  = DateTime.Now,
                        Ip                     = Dns.GetHostName(),
                        NumberDuplicateProduct = 0,
                        Session                = this._session,
                        StartAt                = this._timeStart,
                        TotalProduct           = 0,
                        TypeCrawler            = 0,
                        TypeEnd                = "Error Init",
                        TypeRun                = "Auto"
                    }.ToJson());
                }

                string mss =
                    Newtonsoft.Json.JsonConvert.SerializeObject(new ErrorCrawler()
                {
                    CompanyId = _companyId, ProductId = 0, TimeError = DateTime.Now, Message = "Init" + ex.Message + ex.StackTrace
                });
                _producerReportError.PublishString(mss, true, 20);
                return(false);
            }
        }