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(); }
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); } }