可中断的多处理池工作程序(Python)

时间:2019-09-08 20:41:53

标签: python architecture python-multiprocessing

我有python GUI应用程序,可以启动许多自然属于multiprocessing.Pool工作人员的计算密集型长期运行任务。

但是,我希望能够取消这些任务,因为以后的GUI输入(例如更改配置变量)可能使这些任务无关。

Python中是否存在一种流行的模式,用于跟踪哪些工人正在执行什么任务,并根据需要中断他们?

我能想到的解决方案是:

  1. 当工人开始执行某项任务时,它会通过某种共享状态“宣布”其正在从事该特定任务;如果我们需要取消该任务,我们将查找正在执行哪个进程并.terminate()。但是这里有很多复杂性。
  2. 使用原始的multiprocessing.Process es并编写一个类似Pool的管理器,该管理器可以完全满足我们的要求。
  3. 使用其他替代库,例如Celery。 here是一个庞大的清单。

0 个答案:

没有答案