代码拉取完成,页面将自动刷新
同步操作将从 海风/data_publish 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Builders;
using NetMQ;
using NetMQ.Sockets;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using QueryDBData;
namespace data_publish
{
class Response
{
private string _url;
private QueryDB _qry = null;
public Response(string pUrl, string mongourl)
{
_qry = new QueryDB(mongourl);
_url = pUrl;
}
void Log(string pMsg)
{
Console.WriteLine(DateTime.Now + "\t" + pMsg);
}
public void ResponseData()
{
var rsp = new ResponseSocket();
rsp.Bind($"tcp://{_url}");
DateTime _dataFreshDay = DateTime.Today;
while (true)
{
var str = rsp.ReceiveFrameString(); //取客户请求
try
{
//if(DateTime.Today != _dataFreshDay)
if (DateTime.Now > _dataFreshDay) //20171222:改为一天更新两次(遇到早盘添加品种时无法取到)
{
if (DateTime.Now.TimeOfDay > TimeSpan.Parse("20:30:00"))
_dataFreshDay = DateTime.Today.AddDays(1) + TimeSpan.Parse("08:30:00");
else if (DateTime.Now.TimeOfDay > TimeSpan.Parse("08:30:00"))
_dataFreshDay = DateTime.Today + TimeSpan.Parse("20:30:00");
Console.WriteLine("每日数据更新");
_qry.ResetData(); //每日更新数据
}
var r = JsonConvert.DeserializeObject<ReqPackage>(str);
Log($"received a msg: {r.Type.ToString()},{str}");
object bars = null;
switch (r.Type)
{
case BarType.Min:
bars = _qry.QueryMinBars(r.Instrument, r.Begin, r.End);
break;
case BarType.Day:
bars = _qry.QueryDayBars(r.Instrument, r.Begin, r.End);
break;
case BarType.Real:
bars = _qry.QueryRealBars(r.Instrument);
break;
case BarType.Time:
bars = _qry.ProductWorkingTime.Values.ToList();
break;
case BarType.Product:
bars = _qry.ProductInfo.Values.ToList();
break;
case BarType.InstrumentInfo:
bars = _qry.InstrumentInfo.Values.ToList();
break;
case BarType.TradeDate:
bars = _qry.TradeDate;
break;
case BarType.Instrumet888:
bars = _qry.Instrument888.Values.ToList();
break;
case BarType.Rate000:
bars = _qry.Rate000;
break;
}
using (MemoryStream ms = new MemoryStream())
{
using (GZipStream zipStream = new GZipStream(ms, CompressionMode.Compress))
{
string msg = JsonConvert.SerializeObject(bars);
var bs = Encoding.UTF8.GetBytes(msg);
zipStream.Write(bs, 0, bs.Length);
}
rsp.SendFrame(ms.ToArray()); //放在 zipstream外,否则会有部分数据不写入
}
}
catch (Exception err)
{
Console.WriteLine(err.Message);
//rsp.Unbind($"@tcp://{_url}");
//rsp.Close();
//rsp = new ResponseSocket($"@tcp://{_url}");
rsp.SendFrameEmpty(); //解决读取错误后,不响应就不能再接收的问题
}
}
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。