/// <summary> /// 不断更新最新的新闻 /// </summary> public void SyncStockNews() { var startTime = DateTime.Now;///开始运行时间 Console.Title = "同花顺财经要闻 更新进程 启动时间:" + startTime; var exe = StockTaskExecutor.CreateInstance(); while (true) { try { if (CONST.IsSafeUpdateTime(1)) { exe.GetNewsListCJYW(DateTime.Now.ToShortDateString()); ///非交易时间 if (DateTime.Now.Hour < 6 || DateTime.Now.Hour > 23) ///6点前,23点后 { exe.GetNewsListCJYW(DateTime.Now.AddDays(-1).ToShortDateString()); exe.GetNewsListCJYW(DateTime.Now.AddDays(-2).ToShortDateString()); exe.GetNewsListCJYW(DateTime.Now.AddDays(-3).ToShortDateString()); exe.GetNewsListCJYW(DateTime.Now.AddDays(-4).ToShortDateString()); exe.GetNewsListCJYW(DateTime.Now.AddDays(-5).ToShortDateString()); exe.GetNewsListCJYW(DateTime.Now.AddDays(-6).ToShortDateString()); exe.GetNewsListCJYW(DateTime.Now.AddDays(-7).ToShortDateString()); ThreadManager.Pause(hours: 1); ///凌晨一小时更新一次 } else { ThreadManager.Pause(minutes: 10); ///10分钟更新一次新闻 } } else { exe.GetNewsListCJYW(DateTime.Now.ToShortDateString()); ///交易时间 ThreadManager.Pause(minutes: 3); ///3分钟更新一次新闻 } LOGGER.Log(string.Format("自动新闻更新 已运行时间 {0}", DateTime.Now - startTime)); } catch (Exception e) { LOGGER.Log(string.Format("异常:{0}", e.Message)); LOGGER.Log(string.Format("位置:{0}", e.StackTrace)); LOGGER.Beep(); ThreadManager.Pause(minutes: 1); ///停一分钟 } } }
public void SyncStockRardar() { var startTime = DateTime.Now;///开始运行时间 Console.Title = "SINA 股市雷达异动 更新进程 启动时间:" + startTime; var exe = StockTaskExecutor.CreateInstance(); var mongo = DataStorage.GetInstance(DBType.MongoDB); var dbName = CONST.DB.DBName_StockService; var collectionName = CONST.DB.CollectionName_Radar; var methodName = "SyncStockRardar"; while (true) { var filterCheck = "{\"TradingDate\":new Date('" + string.Format("{0:yyyy/MM/dd}", DateTime.Now) + "')}"; var checkRes = mongo.Count(dbName, collectionName, filterCheck); if (0 == checkRes && CONST.IsSafeUpdateTime(1)) { var listData = WebDataSource.GetInstance().GetStockRadar(); foreach (var item in listData) { var tradingTime = item["异动时间"].ToString().Replace("-", "/"); var filter = "{\"ContentType\":\"SINA 股市雷达\",\"TradingTime\":new Date('" + tradingTime + "')}"; var svItem = new { StockCode = item["股票代码"], StockName = item["股票简称"], AnomalyInfo = item["异动信息"], TradingTime = item["异动时间"], TradingDate = Convert.ToDateTime(tradingTime).Date }; mongo.Save3(dbName, collectionName, svItem, filter); } TaskStatusManager.Set(methodName, new { ID = methodName, Status = "队列处理完毕", CreateTime = DateTime.Now }); LOGGER.Log(string.Format("本次股市雷达异动更新完毕,下一次一天以后更新 {0}", DateTime.Now)); } else { LOGGER.Log(string.Format("今日股市雷达异动已经更新,下一次一天以后更新")); } ThreadManager.Pause(hours: 2); } }
/// <summary> /// SINA大单数据更新 /// </summary> public void SyncSINADaDan() { var startTime = DateTime.Now;///开始运行时间 Console.Title = "SINA大单数据更新 更新进程 启动时间:" + startTime; var exe = StockTaskExecutor.CreateInstance(); while (true) { if (CONST.IsSafeUpdateTime(1)) { exe.GetDaDanData(); LOGGER.Log(string.Format("大单数据已更新,下一次更新在一天后 {0}", DateTime.Now)); ThreadManager.Pause(days: 1); } else { LOGGER.Log(string.Format("未在安全更新时间内 {0}", DateTime.Now)); ThreadManager.Pause(minutes: 5); } } }
/// <summary> /// 更新股票代码 /// </summary> public void SyncStockCode() { var startTime = DateTime.Now;///开始运行时间 Console.Title = "股票代码更新进程 启动时间:" + startTime; var inst = StockTaskExecutor.CreateInstance(); while (true) { if (CONST.IsSafeUpdateTime(1)) ///非交易时间,且交易前1小时 { LOGGER.Log(string.Format("准备更新股票代码 {0}", DateTime.Now)); inst.UpdateAllStockCode(); LOGGER.Log(string.Format("股票代码更新完毕 {0} {1} 下一次更新在一天后后 已运行 ", DateTime.Now, DateTime.Now - startTime)); ThreadManager.Pause(days: 1); ///每日更新一次 } else { Console.WriteLine("交易时间或非安全可更新时间 {0}", DateTime.Now); ThreadManager.Pause(hours: 1); } } }