增加wind接口在未连接时的订阅请求缓存功能
This commit is contained in:
parent
5b61b8c5e8
commit
e6762a63e3
@ -85,6 +85,9 @@ class WindGateway(VtGateway):
|
|||||||
# 而vt中的tick是完整更新,因此需要本地维护一个所有字段的快照
|
# 而vt中的tick是完整更新,因此需要本地维护一个所有字段的快照
|
||||||
self.tickDict = {}
|
self.tickDict = {}
|
||||||
|
|
||||||
|
# 订阅请求缓存
|
||||||
|
self.subscribeBufferDict = {}
|
||||||
|
|
||||||
self.registerEvent()
|
self.registerEvent()
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
@ -100,7 +103,13 @@ class WindGateway(VtGateway):
|
|||||||
def subscribe(self, subscribeReq):
|
def subscribe(self, subscribeReq):
|
||||||
"""订阅行情"""
|
"""订阅行情"""
|
||||||
windSymbol = '.'.join([subscribeReq.symbol, exchangeMap[subscribeReq.exchange]])
|
windSymbol = '.'.join([subscribeReq.symbol, exchangeMap[subscribeReq.exchange]])
|
||||||
|
|
||||||
|
# 若已经连接则直接订阅
|
||||||
|
if self.connected:
|
||||||
data = self.w.wsq(windSymbol, self.wsqParam, func=self.wsqCallBack)
|
data = self.w.wsq(windSymbol, self.wsqParam, func=self.wsqCallBack)
|
||||||
|
# 否则缓存在字典中
|
||||||
|
else:
|
||||||
|
self.subscribeBufferDict[windSymbol] = subscribeReq
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def sendOrder(self, orderReq):
|
def sendOrder(self, orderReq):
|
||||||
@ -160,7 +169,7 @@ class WindGateway(VtGateway):
|
|||||||
self.tickDict[windSymbol] = tick
|
self.tickDict[windSymbol] = tick
|
||||||
|
|
||||||
dt = data.Times[0]
|
dt = data.Times[0]
|
||||||
tick.time = dt.strftime('%H:%M:%S')
|
tick.time = dt.strftime('%H:%M:%S.%f')
|
||||||
tick.date = dt.strftime('%Y%m%d')
|
tick.date = dt.strftime('%Y%m%d')
|
||||||
|
|
||||||
# 采用遍历的形式读取数值
|
# 采用遍历的形式读取数值
|
||||||
@ -186,6 +195,11 @@ class WindGateway(VtGateway):
|
|||||||
|
|
||||||
if not result.ErrorCode:
|
if not result.ErrorCode:
|
||||||
log.logContent = u'Wind接口连接成功'
|
log.logContent = u'Wind接口连接成功'
|
||||||
|
|
||||||
|
# 发出缓存的订阅请求
|
||||||
|
for req in self.subscribeBufferDict.values():
|
||||||
|
self.subscribe(req)
|
||||||
|
self.subscribeBufferDict.clear()
|
||||||
else:
|
else:
|
||||||
log.logContent = u'Wind接口连接失败,错误代码%d' %result.ErrorCode
|
log.logContent = u'Wind接口连接失败,错误代码%d' %result.ErrorCode
|
||||||
self.onLog(log)
|
self.onLog(log)
|
Loading…
Reference in New Issue
Block a user