Ejemplo n.º 1
0
        /// <summary>
        /// 执行TASK更新市场深度
        /// </summary>
        /// <param name="model"></param>
        public void TaskExecution(VmpConfigModel model)
        {
            //Log.Info($"执行更新市场深度TaskExecution,platformCode={platformCode};coinCode={coinCode};currencyCode={currencyCode}");
            try
            {
                ExchangeType   eType      = (ExchangeType)Enum.Parse(typeof(ExchangeType), model.PlatformCode);
                ExChangeBase   eb         = ExchangeFactory.InstanExchange(eType);
                LatePriceModel priceModel = eb.GetLatestRecord(model.CurrencyCode, model.ExCurrencyCode);
                if (priceModel.Asks == null)
                {
                    Log.Error($"执行查询集合为空,platformCode={model.PlatformCode};coinCode={model.CurrencyCode};currencyCode={model.ExCurrencyCode}");
                    return;
                }

                //更新数据库市场深度
                //UpdateLatePriceFacade latePriceFacade =new UpdateLatePriceFacade();
                //latePriceFacade.InsertLatestRecord(model, priceModel);
                //更新缓存市场深度
                UpdateDepthFacade depthFacade = new UpdateDepthFacade();
                if (!depthFacade.UpdateLatePrice(model, priceModel))
                {
                    Log.Error($"Error,更新缓存市场深度失败,platformCode={model.PlatformCode};coinCode={model.CurrencyCode};currencyCode={model.ExCurrencyCode}");
                }

                GC.Collect();
            }
            catch (Exception ex)
            {
                Log.Error("执行查询插入数据出错" + ex);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 处理火币返回值
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="message"></param>
        /// <returns></returns>
        public void MsgPackage(string message)
        {
            try
            {
                //Log.Info("接收消息2"+message);
                int index = message.IndexOf("subbed");
                if (index >= 0)
                {
                    Log.Info("调用火币监听成功:" + message);
                    return;
                }

                DepthWSRequest depth = JsonConvert.DeserializeObject <DepthWSRequest>(message);
                //查询所属平台及交易对
                string pairMark = StringProcess.HuoBiStringSplit(depth.ch);

                VpmConfigCache        vpmConfigCache = new VpmConfigCache();
                List <VmpConfigModel> listModel      = vpmConfigCache.ListConfig();
                var model = listModel.Where(p => p.PlatformCode.Equals("HuoBi") && p.Mark.Equals(pairMark)).FirstOrDefault();

                /*此处用于取数据库数据,最新的改为取缓存*/
                //Vmp_Config vmp_Config = new Vmp_Config();
                //if (!vmp_Config.GetByPlatformPair("HuoBi", pairMark))
                //{
                //    Log.Error("未找到相应的配置:"+ pairMark);
                //    return;
                //}
                //var model = MapProvider.Map<VmpConfigModel>(vmp_Config.DataRow);

                List <PriceModel> asksList = new List <PriceModel>();
                foreach (var asksPrice in depth.tick.asks)
                {
                    PriceModel asks = new PriceModel();
                    asks.price  = asksPrice[0];
                    asks.amount = asksPrice[1];
                    asksList.Add(asks);
                }

                List <PriceModel> bidsList = new List <PriceModel>();
                foreach (var bidsPrice in depth.tick.bids)
                {
                    PriceModel bids = new PriceModel();
                    bids.price  = bidsPrice[0];
                    bids.amount = bidsPrice[1];
                    bidsList.Add(bids);
                }
                LatePriceModel latePrice = new LatePriceModel();
                latePrice.Asks = asksList;
                latePrice.Bids = bidsList;

                //更新数据库市场深度
                //UpdateLatePriceFacade latePriceFacade =new UpdateLatePriceFacade();
                //latePriceFacade.InsertLatestRecord(model, latePrice);
                //更新缓存市场深度
                UpdateDepthFacade depthFacade = new UpdateDepthFacade();
                if (!depthFacade.UpdateLatePrice(model, latePrice))
                {
                    Log.Error($"Error,更新缓存市场深度失败,platformCode={model.PlatformCode};coinCode={model.CurrencyCode};currencyCode={model.ExCurrencyCode}");
                }
            }
            catch (Exception ex)
            {
                Log.Error("更新市场深度失败:" + ex);
            }
        }