public FrmMainSale() { InitializeComponent(); sqlDb = new QT.Entities.Data.SqlDb(QT.Entities.Server.ConnectionStringCrawler); configXPathAdapter = new RaoVatSQLAdapter(sqlDb); foreach (var item in this.configXPathAdapter.GetListConfig()) { this.dicConfigXPath.Add(item.ID, item); } }
protected override void OnStart(string[] args) { log.Info("Start service"); try { InitializeComponent(); cancelTokenSource = new CancellationTokenSource(); Server.LogConnectionString = ConfigurationManager.AppSettings["LogConnectionString"]; QT.Entities.Server.ConnectionString = connectionString; string rabbitMQServerName = ConfigurationManager.AppSettings["rabbitMQServerName"]; workers = new Worker[workerCount]; rabbitMQServer = RabbitMQManager.GetRabbitMQServer(rabbitMQServerName); for (int i = 0; i < workerCount; i++) { log.InfoFormat("Start worker {i}", i.ToString()); var worker = new Worker(refreshCacheProductInfoJobName, false, rabbitMQServer); workers[i] = worker; var token = this.cancelTokenSource.Token; Task workerTask = new Task(() => { var db = new QT.Entities.Data.SqlDb(this.connectionString); QT.Moduls.CrawlerProduct.Cache.CacheProductInfo cacheProductInfo = new QT.Moduls.CrawlerProduct.Cache.CacheProductInfo(db); worker.JobHandler = (jobMss) => { try { token.ThrowIfCancellationRequested(); QT.Entities.CrawlerProduct.RabbitMQ.MssRefreshCacheProductInfo mss = QT.Entities.CrawlerProduct.RabbitMQ.MssRefreshCacheProductInfo.FromJSON(QT.Entities.Common.ByteToString(jobMss.Data)); log.InfoFormat("Start run refresh company {0} : {1}", mss.CompanyID, mss.Domain); RedisCacheProductInfoAdapter rediscacheProductForCompany = RedisCacheProductInfoAdapter.Instance(); int numberProduct = cacheProductInfo.ReloadCacheForCompany(mss.CompanyID, mss.Domain); log.InfoFormat("End refresh company {0} : {1} {2} products", mss.CompanyID, mss.Domain, numberProduct); return(true); } catch (OperationCanceledException opc) { log.Info("End worker"); return(true); } }; worker.Start(); }, token); workerTask.Start(); log.InfoFormat("Worker {0} started", i); } } catch (Exception ex) { log.Error("Start error", ex); throw; } }