Qlib-Server:量化库数据服务器
介绍
Qlib-Server 是 Qlib 的配套服务器系统,它利用 Qlib 进行基本计算,并提供广泛的服务器系统和缓存机制。通过 Qlib-Server,可以以集中的方式管理 Qlib 提供的数据。
框架
Qlib 的客户端/服务器框架基于 WebSocket 构建,这是因为 WebSocket 支持客户端和服务器之间异步模式下的双向通信。
Qlib-Server 基于 Flask 构建,Flask 是一个 Python 的微框架,在这里使用 Flask-SocketIO 来实现 websocket 连接。
Qlib-Server 提供以下流程:
监听客户端的请求
客户端会向服务器提出多种类型的请求。服务器将解析这些请求,收集不同客户端的相同请求,记录他们的会话 ID,并将这些解析后的任务提交到一个管道。Qlib 使用 RabbitMQ 作为这个管道。任务将被发布到一个名为 task_queue 的频道。
用于此功能的是 RequestListener
。
在接收到这些请求后,服务器将检查不同的客户端是否正在请求相同的数据。如果是这样,为了防止数据重复生成或缓存文件重复生成,服务器将使用 Redis 来维护这些客户端的会话 ID。一旦这项任务完成,这些会话 ID 将被删除。为了避免 IO 冲突,导入 Redi