query_cont_quotes这个方法必须行情开盘后才能获取,但是我下面代码一开始函数里调用query_cont_quotes没有问题,但是我放到一个定时任务里过几秒才去更新调用同样方法就返回空列表为何
async def _schedule_main_code_update(self):
"""定时更新main_code(只执行一次)"""
while True:
now = datetime.datetime.now()
if 15<=now.hour <= 16 and now.minute == 2 and 1<=now.second <= 10:
self.get_main_code()
break
elif 20<=now.hour <= 21 and now.minute == 0 and 1<=now.second <= 10:
self.get_main_code()
break
elif now.hour > 21:
break
else:
await asyncio.sleep(1)
def update_live_data(self):
"""对外接口:实时更新所有数据"""
self.get_main_code()
print(f"[{datetime.datetime.now()}] data server start",flush=True)
self.api.create_task(self._schedule_main_code_update())
for i in self.input_task:
self.api.create_task(self.insert_latest(i, 60))
self.api.create_task(self.insert_latest(i, 300))
self.api.create_task(self.insert_latest(i, 86400))
self.api.create_task(self.get_quote(i))
是的,主力会在接收到第一笔行情的时候切换
这个问题解决了,想确认下query_cont_quotes这个函数是来行情第一笔时候才会更新的吗?昨天测试发现一个现象1月19号20点50和21点01分,我分别执行该函数更新后黄金主力还是02。1月20号早上没留意9点01分我更新后才看到黄金主力是04了,天勤的更新是只有早上还是每个品种各自开盘更新的