public int StartDataSource() { _logger.Info(Title, "开始连接数据源!"); if (_dataAdapter.Start() == 0 && _dataAdapter.IsRunning) { _logger.Warn(Title, "数据源已连接!"); _logger.Info(Title, "开始获取代码列表!"); List <MarketCode> codes; int count = _dataAdapter.GetCodeTable(out codes); if (count > 0) { StockCodeManager.GetInstance.UpdateMarketCodes(codes); _logger.Warn(Title, "获取代码列表成功!"); RestoreDataSource(); return(0); } _logger.Error(Title, "代码列表获取失败!"); } _logger.Error(Title, "数据源连接失败!"); return(1); }
public int Start() { try { if (_dataAdapter == null) { _logger.Error(SENDER, "未绑定数据源!"); return(1); } if (_isRunning == true) { _logger.Error(SENDER, "不能重复启动!"); return(2); } _dataCount = 0; _orderCount = 0; _orderQueueCount = 0; _transactionCount = 0; _pubAddress = SettingManager.GetInstance.DataServer.PubAddress; _pubPort = SettingManager.GetInstance.DataServer.PubPort; _isTransport = SettingManager.GetInstance.DataServer.IsTransport; _isCompress = SettingManager.GetInstance.DataServer.IsCompress; _dataAdapter.NewMarketData += PubMarketData; _dataAdapter.NewMarketOrder += PubMarketOrder; _dataAdapter.NewMarketOrderQueue += PubMarketOrderQueue; _dataAdapter.NewMarketTransction += PubMarketTransction; //如果开启转发则不能进行本地分发,尽量减小cpu负担 if (_isTransport == true) { _dataThreadGZip = new Thread(new ThreadStart(DataPubRoutineGZip)) { IsBackground = true }; _dataThreadGZip.Start(); _orderThreadGZip = new Thread(new ThreadStart(OrderPubRoutineGZip)) { IsBackground = true }; _orderThreadGZip.Start(); _orderQueueThreadGZip = new Thread(new ThreadStart(OrderQueuePubRoutineGZip)) { IsBackground = true }; _orderQueueThreadGZip.Start(); _transactionThreadGZip = new Thread(new ThreadStart(TransactionPubRoutineGZip)) { IsBackground = true }; _transactionThreadGZip.Start(); } else { _dataThread = new Thread(new ThreadStart(DataPubRoutine)) { IsBackground = true }; _dataThread.Start(); _orderThread = new Thread(new ThreadStart(OrderPubRoutine)) { IsBackground = true }; _orderThread.Start(); _orderQueueThread = new Thread(new ThreadStart(OrderQueuePubRoutine)) { IsBackground = true }; _orderQueueThread.Start(); _transactionThread = new Thread(new ThreadStart(TransactionPubRoutine)) { IsBackground = true }; _transactionThread.Start(); //_replyThread = new Thread(new ThreadStart(ReplyInfo)) { IsBackground = true }; //_replyThread.Start(); } _isRunning = true; _logger.Info(SENDER, "已启动!"); return(0); } catch (Exception ex) { _logger.Error(SENDER, "启动失败!", ex); return(2); } }