public override int run(string[] args) { shutdownOnInterrupt(); IWindowLogger logger = UnityContainerHost.Container.Resolve <IWindowLogger>(); try { string endpoint = string.Format("default:tcp -p {0}", SettingManager.GetInstance.DataServer.SubPort); _ic = communicator(); ObjectAdapter adapter = _ic.createObjectAdapterWithEndpoints("AASDataServer", endpoint); IceDataService dataService = new IceDataService(); adapter.add(dataService, _ic.stringToIdentity("AASDataServer/DataServant")); adapter.activate(); _isRunning = true; logger.Warn(Title, "已启动!"); _ic.waitForShutdown(); if (interrupted()) { logger.Error(Title, "已中断!"); return(1); } logger.Warn(Title, "已停止!"); _isRunning = false; return(0); } catch (System.Exception ex) { _isRunning = false; logger.Error(Title, "运行出错!", ex); return(1); } }
public int Start() { try { StartIceDataServer(); //启动数据发布服务 if (_pubService.Start() == 0) { //启动数据源服务 if (StartDataSource() == 0) { _bootTime = DateTime.Now; return(0); } } } catch (Exception ex) { _logger.Error(Title, "启动失败!请查看日志!", ex); } 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); } }