Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
            }
        }