【问题标题】:Having other subprocess in queue wait until a certain flag is set让队列中的其他子进程等待直到设置了某个标志
【发布时间】: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


【解决方案1】:

因此,我们继续创建 n 个进程,而不是使用挂起程序。这不是理想的方法,但暂时;它解决了手头的问题。

我仍然希望有更好的方法来达到同样的效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 2020-09-21
    • 2013-02-13
    相关资源
    最近更新 更多