Skip to main content

客户端管理

使用上下文管理器

推荐使用 with 语句管理客户端生命周期,确保资源正确释放:

复用客户端实例

在应用程序中应复用客户端实例,避免频繁创建销毁:

错误处理

捕获特定异常

SDK 提供了细粒度的异常类型,便于针对性处理:

异常层级

重试机制

自动重试

SDK 内置了智能重试机制,以下情况会自动重试:
  • 网络连接失败
  • 请求超时
  • 服务器错误 (5xx)
  • 频率限制 (429)
重试使用指数退避策略(1s, 2s, 4s…),并添加随机抖动,避免雪崩效应。

批量请求优化

使用批量接口

当需要获取多只股票数据时,使用批量接口而非循环单独请求:

处理大量标的

批量接口自动分批并发请求,默认每批 100 个标的:

调整每批标的数量

如果服务端对每次请求的标的数量有限制(例如套餐限制每次只能查询 50 个标的),可通过 batch_size 参数调整:
过高的并发数可能触发频率限制,建议 max_workers 设置为 3-10。

DataFrame 最佳实践

按需使用 DataFrame

DataFrame 转换有一定开销,只在需要时启用:

批量数据的使用

批量接口返回 Dict[str, pd.DataFrame],按标的代码索引:

异步最佳实践

控制并发

使用信号量控制并发数量:

处理部分失败

使用 return_exceptions=True 允许部分任务失败:

生产环境配置

环境变量配置

日志配置

常见问题

SDK 会自动重试被限流的请求。如果频繁触发限流,建议:
  1. 减少 max_workersmax_concurrency 并发数
  2. 使用批量接口减少请求次数
  3. 在请求间添加适当延迟
  4. 升级套餐
检查以下几点:
  1. 确认已安装 pandas:pip install pandas
  2. 确认标的代码正确(如 600000.SH 而非 600000
  3. 确认时间范围内有数据
  4. 检查是否有异常抛出
  1. 使用异步客户端 AsyncTickFlow
  2. 适当提高 max_workers(同步客户端)、max_concurrency(异步客户端)
  3. 减少单次请求的数据量(如减少 count
  4. 使用 show_progress=True 监控进度