VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 22
声望: 1

我看到在 vnctp 的 cpp 代码中,vnctpmd 和 vnctptd 都在 cpp 部分实现了一个自线程内的 TaskQueue 消费逻辑,我的问题是,为什么不直接降 cpp 的回调函数直接映射到 python 绑定函数上而是再用了一层事件分发机制?这样做是为了解决什么问题?

Administrator
avatar
加入于:
帖子: 4500
声望: 320

CTP内部缓冲区很小,回调函数阻塞超过1秒可能就会崩掉。

推送数据到Python中需要先获取GIL,而这个获取操作的延时不确定,可能超过1秒。

没有缓冲区的后果,就是封装的接口在99.99%情况下都工作正常,但就是有0.01%的可能莫明其妙崩掉,还查不出来原因。

Member
avatar
加入于:
帖子: 22
声望: 1

用Python的交易员 wrote:

CTP内部缓冲区很小,回调函数阻塞超过1秒可能就会崩掉。

推送数据到Python中需要先获取GIL,而这个获取操作的延时不确定,可能超过1秒。

没有缓冲区的后果,就是封装的接口在99.99%情况下都工作正常,但就是有0.01%的可能莫明其妙崩掉,还查不出来原因。

多谢陈大解答

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】