几天前我问了一个类似的问题,但有点不清楚,所以我删除了它并在这里制作了这个新问题。
我有一个从加密货币交易所(Binance、Kraken、Poloniex 等)获取市场数据的项目。我希望能够在项目启动并运行时添加额外的交换。例如,我每 10 秒从 Binance 和 Poloniex 提取数据,但现在我想添加对 Kraken 的支持。如何继续从其他两个交易所获取数据(添加 Kraken 而无需重新启动程序)。
我目前有两种解决方案。
- 启动正在获取数据的客户端作为每次交换的新进程
- 用于
importlib.import_module()
加载新模块并在同一进程中处理每个交换(使用 asyncio)
此外,如果我想添加从另一个 API 端点获取数据等功能怎么办。方法 1 可能需要重新启动,使用方法 2 我可以重新加载所有模块并在 fetch 调用之间更新类实例。但我不确定这可能导致的副作用。
也许有一种默认方式是如何实现这样的项目的?