public void Run() { Task.Factory.StartNew(() => { SqlDb sqlDb = new QT.Entities.Data.SqlDb(@"Data Source=42.112.28.93;Initial Catalog=QT_2;Persist Security Info=True;User ID=wss_price;Password=HzlRt4$$axzG-*UlpuL2gYDu;connection timeout=200"); QT.Moduls.CrawlerProduct.Cache.CacheProductInfo cacheProductInfo = new QT.Moduls.CrawlerProduct.Cache.CacheProductInfo(sqlDb); while (true) { BasicGetResult result = this.GetMessage(); if (result != null) { string str = System.Text.Encoding.UTF8.GetString(result.Body); if (str != "") { MssRefreshCacheProductInfo job = MssRefreshCacheProductInfo.FromJSON(str); log.Info(string.Format("Get Message For Company:{0} {1}", job.CompanyID, job.Domain)); RedisCacheProductInfo rediscacheProductForCompany = RedisCacheProductInfo.Instance(); int ProductCache = cacheProductInfo.RefreshAllCacheAllProduct(job.CompanyID); log.Info(string.Format("Company:{0} NumberProductCache:{1}", job.CompanyID, job.Domain)); } } this.tokenStop.WaitHandle.WaitOne(10000); } }); }
protected override void OnStart(string[] args) { log.Info("Start service"); try { InitializeComponent(); cancelTokenSource = new CancellationTokenSource(); string rabbitMQServerName = ConfigurationManager.AppSettings["rabbitMQ31ServerName"]; workers = new Worker[workerCount]; rabbitMQServer = RabbitMQManager.GetRabbitMQServer(rabbitMQServerName); QT.Moduls.LogCassandra.LogCrawler logCass = new QT.Moduls.LogCassandra.LogCrawler(); var db = new QT.Entities.Data.SqlDb(this.connectionString); for (int i = 0; i < workerCount; i++) { log.InfoFormat("Start worker {i}", i.ToString()); var worker = new Worker(CrawlerProductLog, false, rabbitMQServer); workers[i] = worker; var token = this.cancelTokenSource.Token; Task workerTask = new Task(() => { worker.JobHandler = (updateDatafeedJob) => { try { token.ThrowIfCancellationRequested(); QT.Entities.CrawlerProduct.RabbitMQ.MssLogCassandra mss = QT.Entities.CrawlerProduct.RabbitMQ.MssLogCassandra.GetDataFromMessage(updateDatafeedJob.Data); logCass.SaveLogToCassandra(mss.log, (QT.Moduls.LogCassandra.LogCode)mss.logCode, (QT.Moduls.LogCassandra.TypeLog)mss.typeLog, mss.data_id, mss.data_second_id, null, mss.session); log.InfoFormat("Log crawler company {0} : {1} ", mss.data_id, mss.data_second_id); return(true); } catch (OperationCanceledException opc) { log.Info("End worker"); return(true); } catch (Exception ex01) { log.Info(ex01); return(true); } }; worker.Start(); }, token); workerTask.Start(); log.InfoFormat("Worker {0} started", i); } } catch (Exception ex) { log.Error("Start error", ex); throw; } }
/// <summary> /// PageNumber Is TextPage /// </summary> /// <param name="sql"></param> /// <param name="row"></param> /// <param name="rowsPage"></param> /// <param name="processRow"></param> public void ProcessDataTableLarge(string sql, int rowsPage, ProcessRow processRow) { var pageName = 1; var iRow = 0; string fullSql = sql + @" OFFSET ((@PageNumber - 1) * @rowsPage) ROWS FETCH NEXT @rowsPage ROWS ONLY"; DataTable tbl = null; do { try { tbl = this.GetTblData(fullSql, CommandType.Text, new SqlParameter[] { SqlDb.CreateParamteterSQL("PageNumber", pageName, SqlDbType.Int), SqlDb.CreateParamteterSQL("rowsPage", rowsPage, SqlDbType.Int), }); foreach (DataRow variable in tbl.Rows) { iRow++; bool bNext = processRow(variable, iRow); if (bNext == false) { break; } } log.Info(string.Format("Processed {0} rows at page {1}", tbl.Rows.Count, pageName)); pageName = pageName + 1; } catch (Exception exception) { log.Error(exception); } } while (tbl == null || tbl.Rows.Count > 0); return; }
public CompanyAdapter(SqlDb sqlDb) { this.sqlDb = sqlDb; }
public RaoVatSQLAdapter(QT.Entities.Data.SqlDb sqlDb) { this.sqlDb = sqlDb; }
public ProductLogAddAdapter(SqlDb sqlDb) { this.sqlDb = sqlDb; this.log = log4net.LogManager.GetLogger(typeof(ProductLogAddAdapter)); }