如何从单个数据源并行处理串行数据?

时间:2017-11-24 22:18:37

标签: python optimization multiprocessing python-multiprocessing multiprocessing-manager

问题:

我正在从服务器下载财务数据并随后处理此数据。我确实同时为​​多个股票收集数据。

我需要并行处理数据下载器和数据处理器(因为数据处理器本身将由多个进程组成)。

我绝对需要以序列化方式处理每种股票的数据,但如果我有超过1种股票,我必须以平行的方式处理股票。

我对问题的理解:

从我收集的内容中,我需要一种方法来从单一来源获得一种方法来将这些数据传输到并行流程,这些流程事先确定哪些数据(根据库存ID)进入每个流程(每个库存都有自己的流程)。

到目前为止,我尝试了几种不同的方法但没有成功,我只需要解决这个错误:

RuntimeError: Queue objects should only be shared between processes through inheritance

可能的解决方案

我将尝试实施的下一件事是使用multiprocessing.Manager().dict() collections.dequemultiprocessing.Queue()list()作为元素,并为mp.Process()创建一个字典实例(每个股票)。

重要的是,这些数据结构可以进行动态分配,因为我可能会在运行时更改库存。

问题

有什么方法可以解决这个问题?

直观地说,似乎有一种比使用multiprocessing.Manager().dict()更好的方法来完成这项任务,但我还没有找到它。有这样的事吗?

0 个答案:

没有答案