public void ExecuteTask() { try { if ((ConfigurationManager.AppSettings["StockDataAllowance"] ?? "") != "TRUE") return; //log.WriteEntry("Start Stock 1 : " + index, EventLogEntryType.Information); var bfirstTime = true; Thread.Sleep((index - 1) * 1000); var sql = new SqlDb(); while (ServiceStarted) { try { //log.WriteEntry(index + "-start-", EventLogEntryType.Information); if (!bfirstTime) Thread.Sleep(interval); bfirstTime = false; //log.WriteEntry("Start Stock 2 : " + index, EventLogEntryType.Information); var sdt = sql.GetStockUpdate(); //log.WriteEntry("Start Stock 2 : " + index + " : " + sdt.Rows.Count, EventLogEntryType.Information); if (sdt.Rows.Count == 0) continue; var symbols = new List<string>(); foreach (DataRow sdr in sdt.Rows) { var ts = sdr["Symbol"].ToString().ToUpper(); if (symbols.Contains(ts)) continue; symbols.Add(ts); } foreach (var symbol in symbols) { //var symbol = sdt.Rows[0]["Symbol"].ToString().ToUpper(); var relobj = new List<string>(); var rellst = new List<string>(); var relutp = new List<string>(); var ids = ""; var success = true; //log.WriteEntry(symbol + Environment.NewLine, EventLogEntryType.Information); foreach (DataRow sdr in sdt.Rows) { if (symbol != sdr["Symbol"].ToString().ToUpper()) continue; var related = sdr["RelatedObject"].ToString().ToUpper().Split(','); var updateType = sdr["UpdateType"].ToString().ToUpper(); foreach (var s in related) { if (!relobj.Contains(s)) relobj.Add(s); if (!s.StartsWith("S")) //nếu là danh sách { if (!rellst.Contains(s)) { rellst.Add(s); relutp.Add(updateType); } //if (!UpdateList(symbol, s, updateType)) success = false; } } ids += sdr["UpdateId"].ToString() + ","; } //log.WriteEntry(ids + "-" + success + "-" + relobj.Count, EventLogEntryType.Information); sql.OpenDb(); if (relobj.Count > 0) //update mã { //log.WriteEntry("Update stock - " + symbol + "-" + relobj[0], EventLogEntryType.Information); if (!UpdateStock(symbol, relobj, ref sql)) success = false; } for (var i = 0; i < rellst.Count; i++) { if (!UpdateList(symbol, rellst[i], relutp[i], ref sql)) success = false; } //log.WriteEntry("Start Stock 3 : " + index + " : " + symbol + " : " + ids, EventLogEntryType.Information); if (success && !string.IsNullOrEmpty(ids)) { sql.UpdateStockMonitor(ids); } sql.CloseDb(); } } catch (Exception ex) { log.WriteEntry(ex.ToString(), EventLogEntryType.Error); } } } catch (Exception ex) { log.WriteEntry(ex.ToString(), EventLogEntryType.Error); } finally { Thread.CurrentThread.Abort(); } }
public void UpdateCeoImage() { try { if ((ConfigurationManager.AppSettings["CeoImageAllowance"] ?? "") != "TRUE") return; var bfirstTime = true; //Thread.Sleep(index * 1000); var sql = new SqlDb(); var redis = new RedisClient(ConfigRedis.Host, ConfigRedis.Port); while (ServiceStarted) { try { if (!bfirstTime) Thread.Sleep(reportInterval); bfirstTime = false; sql.OpenDb(); var ldt = sql.GetAllLandProjects(); //var cdt = sql.GetAllCeos(); sql.CloseDb(); landImages = GetAllLandImages(); var keys = redis.SearchKeys(string.Format(RedisKey.BDSKey, "*", "*")); foreach(var key in keys) { var t = key.Substring(key.IndexOf(":tiendocode:"), key.IndexOf(":Object") - key.IndexOf(":tiendocode:")).Replace(":tiendocode:", ""); if (ldt.Select("MaTienDo = '" + t + "'").Length == 0) { redis.Remove(key); continue; } var o = redis.Get<TienDoBDS>(key); if(o==null) continue; var s = o.MaTienDo; if (string.IsNullOrEmpty(s)) continue; o.BDSImages = landImages.FindAll(i => i.ToUpper().StartsWith(s)); redis.Set(key, o); } ceoPhotos = GetCeoPhotos(); foreach (var photo in ceoPhotos) { if (!photo.Contains(".")) continue; var code = photo.Substring(0, photo.IndexOf(".")); if (redis.ContainsKey(string.Format(RedisKey.CeoImage, code))) { redis.Set(string.Format(RedisKey.CeoImage, code), photo); } else { redis.Add(string.Format(RedisKey.CeoImage, code), photo); } //var o = redis.Get<Ceo>(string.Format(RedisKey.CeoKey, code)); //if (o == null) continue; //o.CeoImage = photo; //redis.Set(string.Format(RedisKey.CeoKey, code), o); } var keywords = SqlDb.GetGoogleTag(-1); var ls = new List<string>(); foreach (DataRow keyword in keywords.Rows) { if(!ls.Contains(keyword["keyword"].ToString())) ls.Add(keyword["keyword"].ToString()); } //if (redis.ContainsKey(RedisKey.GoogleTag)) // redis.Set(RedisKey.GoogleTag, ls); //else // redis.Add(RedisKey.GoogleTag, ls); } catch (Exception ex) { log.WriteEntry("UpdateCeoImage - " + ex.ToString(), EventLogEntryType.Error); } } } catch (Exception ex) { log.WriteEntry("UpdateCeoImage - " + ex.ToString(), EventLogEntryType.Error); } }