客户端管理
使用上下文管理器
推荐使用with 语句管理客户端生命周期,确保资源正确释放:
复用客户端实例
在应用程序中应复用客户端实例,避免频繁创建销毁:错误处理
捕获特定异常
SDK 提供了细粒度的异常类型,便于针对性处理:异常层级
重试机制
自动重试
SDK 内置了智能重试机制,以下情况会自动重试:- 网络连接失败
- 请求超时
- 服务器错误 (5xx)
- 频率限制 (429)
重试使用指数退避策略(1s, 2s, 4s…),并添加随机抖动,避免雪崩效应。
批量请求优化
使用批量接口
当需要获取多只股票数据时,使用批量接口而非循环单独请求:处理大量标的
批量接口自动分批并发请求,默认每批 100 个标的:调整每批标的数量
如果服务端对每次请求的标的数量有限制(例如套餐限制每次只能查询 50 个标的),可通过batch_size 参数调整:
DataFrame 最佳实践
按需使用 DataFrame
DataFrame 转换有一定开销,只在需要时启用:批量数据的使用
批量接口返回Dict[str, pd.DataFrame],按标的代码索引:
异步最佳实践
控制并发
使用信号量控制并发数量:处理部分失败
使用return_exceptions=True 允许部分任务失败:
生产环境配置
环境变量配置
日志配置
常见问题
如何处理频率限制?
如何处理频率限制?
SDK 会自动重试被限流的请求。如果频繁触发限流,建议:
- 减少
max_workers或max_concurrency并发数 - 使用批量接口减少请求次数
- 在请求间添加适当延迟
- 升级套餐
DataFrame 返回空怎么办?
DataFrame 返回空怎么办?
检查以下几点:
- 确认已安装 pandas:
pip install pandas - 确认标的代码正确(如
600000.SH而非600000) - 确认时间范围内有数据
- 检查是否有异常抛出
如何提高批量请求性能?
如何提高批量请求性能?
- 使用异步客户端
AsyncTickFlow - 适当提高
max_workers(同步客户端)、max_concurrency(异步客户端) - 减少单次请求的数据量(如减少
count) - 使用
show_progress=True监控进度
