Example #1
0
 static void ResetTaskList()
 {
     Logger.Info("重置任务列表");
     foreach (var stock in UnusedStockDataList)
     {
         Logger.Info($"移除 {stock.Code}");
         LocalStockDataList.Remove(stock);
     }
     UnusedStockDataList.Clear();
 }
Example #2
0
        static void Main(string[] args)
        {
            try
            {
                var loginResult = Trader.Login();
                if (!loginResult.IsSucceeded)
                {
                    Logger.Error("登录失败,程序退出");
                    Exit();
                }

                LocalStockDataList.ForEach(stock => Init(stock));

                var sleepTime = Int32.Parse(Settings["SleepTime"]) * 1000;
                var stopwatch = Stopwatch.StartNew();
                while (true)
                {
                    Logger.Info($"批量任务开始,共 {LocalStockDataList.Count} 对象");
                    RefreshTraderStockData();

                    LocalStockDataList.ForEach(stock =>
                    {
                        Logger.Info($"开始执行 {stock.Code} ");

                        ExecuteOneStock(stock);

                        Logger.Info($"结束执行 {stock.Code} ");
                    });

                    Logger.Info($"批量任务结束,共 {LocalStockDataList.Count} 对象");
                    ResetTaskList();

                    Logger.Info($"进入休眠");
                    if (stopwatch.ElapsedMilliseconds < sleepTime)
                    {
                        Thread.Sleep(sleepTime - (int)stopwatch.ElapsedMilliseconds);
                    }

                    stopwatch.Restart();
                }
            }
            catch (Exception e)
            {
                Logger.Info($"执行出错,退出执行。错误信息:{e.Message} StackTrace: {e.StackTrace}");
                Exit();
            }
        }