gpt4 book ai didi

python - 多处理是适合我的工具吗?

转载 作者:太空宇宙 更新时间:2023-11-04 06:35:33 25 4
gpt4 key购买 nike

我需要编写一个非常具体的数据处理守护进程。

这是我认为它可以与多处理一起工作的方式:

  • 进程 #1:获取一些重要元数据的进程,可以每秒获取一次,但这些数据必须在进程 #2 中可用。进程 #1 写入数据,进程 #2 读取数据。

  • 进程 #2:两个进程将根据进程 #1 中收到的数据获取真实数据。获取的数据将存储到一个(大)队列中以供“稍后”处理

  • 进程 #3:两个(或更多)进程轮询在进程 #2 中创建的队列并处理这些数据。一旦完成,一个新的队列被填满以用于进程#4

  • 进程 #4:两个进程将读取进程 #3 填充的队列并通过 HTTP 发送回结果。

所有这些不同流程背后的想法是尽可能特化它们,并使它们尽可能独立。

所有这些进程将被包装到一个在这里实现的主守护进程中:

我想知道我的想象是否相关/愚蠢/矫枉过正/等等,特别是如果我在将被守护进程的主父进程中运行守护进程multiprocessing.Process(es)。此外,我有点担心潜在的锁定问题。理论上读取和写入数据的过程使用不同的变量/结构,因此应该避免一些问题,但我仍然担心。

也许对我的上下文使用多处理不是正确的做法。我很乐意收到您对此的反馈。

注释:

  • 我不能将 Redis 用作数据结构服务器
  • 我考虑过将 ZeroMQ 用于 IPC,但如果多处理也能完成这项工作,我会避免使用另一个额外的库。

提前感谢您的反馈。

最佳答案

一般来说,您将不同的员工分配给不同的任务以及让他们进行交流的计划看起来已经不错了。但是,您应该注意的一件事是,只要处理步骤受 I/O 或 CPU 限制。如果您受 I/O 限制,我会尽可能选择线程模块:您的应用程序的内存占用将更小,并且线程之间的通信可以更有效,因为允许共享内存。仅当您需要额外的 CPU 能力时,才使用多处理。在您的系统中,您可以同时使用两者(看起来进程 3(或更多)将执行一些繁重的计算,而其他工作人员将主要受 I/O 限制)。

关于python - 多处理是适合我的工具吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11844184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com