658 浏览
0

貌似是python协程机制的锅,可能是我获取的K线太多了,获取K线用完后怎么安全地取消获取K线的任务啊?

它提示抛出异常的代码块为TqApi类里定义的

async def _get_serial_async(self, symbol, chart_id, serial, pack):
        await self._ensure_symbol_async(symbol)
        self._auth._has_md_grants(symbol)
        # 判断用户是否指定了 chart_id(参数), 如果指定了,则一定会发送新的请求。
        if serial is None or chart_id is not None:
            self._send_pack(pack)

李思恒 已回答的问题 2024年2月7日

我每次只需要用一条K线,所以用完能直接安全取消就行

0

其实我们目前没有一个很好的取消订阅的方法,不建议取消除非有特殊情况,因为K其实都是增量数据,占用很小

剔刀_隐风 发表新评论 2024年2月7日

感谢李老师的回答,建议后续版本增加取消订阅的功能,不清楚把创建的task引用返回能不能做到这个功能?多周期多合约策略会获取周期不同的很多K线,计算完数据后又不需要了,但可能又要根据计算结果获取其它K线,asyncio机制在这种情况下似乎造成了我遇到的问题。