【发布时间】:2017-02-21 14:52:11
【问题描述】:
到目前为止,这个问题仍在计划中,所以我可以寻求另一种更合适的方法。情况是这样的:
我们创建一个由 n 个进程组成的队列,每个进程独立于队列本身中的其他任务执行。它们不共享任何资源等。但是,我们注意到有时(取决于队列参数)进程k 的行为可能取决于特定于k+1 进程的标志的存在。此标志将在 DynamoDB 表中设置,因此;执行可能会失败。
我目前正在寻找的是一种方法,这样我就可以在我的任务/工作人员中设置某种服务员/挂起者,以便他们轮询直到在 DynamoDB 表中设置了标志,同时让其他子进程占用启动 CPU。
这个布尔值的设置是在进程本身的早期完成的。该过程的依赖部分要晚得多。
【问题讨论】:
-
如果可以更改需要等待flag的进程的来源,就可以轻松做到。
-
@AJPennster 但是,假设我在池中启动了 3 个进程,我的
n是 12,而我的k位于索引 1,k+1位于 7。现在,@ 987654326@th 进程仅在先前的进程已执行时才会执行,而我的第 k 个进程将冻结,直到第 k+1 个已设置标志值。这就是为什么我想在设置标志后暂停我的进程,以便其他进程可以开始执行。
标签: python parallel-processing queue multiprocessing