连接池 pytdx.pool
行情连接池 API (实验阶段)
连接池API只针对特定的场景下使用,它还在非常早期的开发阶段
描述
它即可以在普通行情api上使用,也可以在扩展行情api中使用,它的基础的逻辑为: 我们需要提供一组ip,他们被划分为3类角色
一个正在进行通讯的主连接 我们命名它为M
一个热备选连接,它通过心跳包和备选服务器连接, 它为 H
一组备选连接池,它们周期性的重拍顺序(可能是根据连接服务器的速度),始终准备替换上面两个连接。 我们命名它们为P
当主连接P的接口调用出现问题时,我们将:
热备选连接H 转化为主连接M,重发主连接的请求
从连接池P中选出最快的一个连接,重新成为热备选连接H, 并通过心跳包维持服务器的链接
连接M回到备选连接池P中。
如此,保证我们的API请求的可靠性
例子:
areur3ady补充
通过实际使用,发现在我的网络环境下,运行pytdx.pool下相关代码,虽然获得了不错的api稳定性,避免出现timeout的情况,但是牺牲了速度。
我的解决办法是,先打开tdx软件,使用网络测速功能(快捷键33),挑选延迟比较好的服务器地址,然后在软件开始界面的“通讯设置”找到这些服务器的ip地址,复制进代码,然后:
ips=[xxxx.xxxx.xxxx.xxxx,
xxxx.xxxx.xxxx.xxxx]
def setting_ip():
for ip in ips:
try:
if api.connect(ip,7709):
return True
except:
continue
本来if api.connect()的地方换成setting_ip()就可以基本解决单个ip地址不稳定的问题。
Last updated