在python ProcessPoolExecutor或共享状态下停止特定进程



这是我的代码

def long_stage_task(node, deployment_folder_name, stage_s3_bucket):
global workers
logging.info("starting....")
work = StageOS(node, deployment_folder_name, stage_s3_bucket)--> class
work.stagestart()--> class method
executor = ProcessPoolExecutor(5)
executor.submit(long_stage_task, i, deployment_folder_name, stage_s3_bucket)

现在,我如何停止特定的进程/pid。有没有任何方法可以传递全局变量或共享状态btw,我在文档中没有看到任何东西。https://docs.python.org/3/library/concurrent.futures.html

您可以将事件列表传递给工作者,并在希望工作者停止时对其进行设置。这意味着您的long_stage_task函数会定期检查自己的Event。

如果你想要的是停止一项耗时太长的任务,你可以看看pebble。它允许设置函数调用的超时以及取消正在进行的任务。

相关内容

  • 没有找到相关文章

最新更新