问题:
我正在从服务器下载财务数据,然后处理这些数据。我确实会同时收集多只股票的数据。
我需要并行处理数据下载器和数据处理器(因为数据处理器本身将由多个进程组成)。
我绝对需要以序列化方式处理每只股票的数据,但如果我有超过 1 只股票,我必须以并行方式处理这些股票。
我对问题的理解:
从我收集到的信息中,我需要一种方法从单一来源获得一种将这些数据传输到并行进程的方法,这些进程预先确定哪些数据(根据股票 ID)进入每个进程(每个股票都有自己的进程)。
到目前为止,我已经尝试了几种不同的方法,但都没有成功,我只需要解决这个错误:
RuntimeError: Queue objects should only be shared between processes through inheritance
可能的解决方案
我将尝试实现的下一件事是使用multiprocessing.Manager().dict()
withcollections.deque
或multiprocessing.Queue()
orlist()
作为元素并为mp.Process()
实例(为每只股票)创建一个字典。
重要的是可以动态分配这些数据结构,因为我可能会在运行时更改库存。
问题
解决此问题的有效方法是什么?
直觉上似乎有比使用更好的方法multiprocessing.Manager().dict()
来完成这项任务,但我还没有找到。有这种事吗?