【问题标题】:stop specfic process in python ProcessPoolExecutor or shared state btw them停止 python ProcessPoolExecutor 中的特定进程或它们之间的共享状态
【发布时间】:2020-02-25 19:44:27
【问题描述】:

这是我的代码

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。 有什么方法可以传递全局变量或共享状态,我在文档中看不到任何内容。 https://docs.python.org/3/library/concurrent.futures.html

【问题讨论】:

    标签: multiprocessing python-3.6 python-multiprocessing


    【解决方案1】:

    您可以将Events 的列表传递给工作人员,并在您希望工作人员停止时设置它们。这意味着您的 long_stage_task 函数会定期检查自己的事件。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-15
      • 1970-01-01
      • 2018-08-25
      • 2012-07-03
      • 2014-10-22
      • 1970-01-01
      • 2010-11-12
      • 2016-11-02
      相关资源
      最近更新 更多