在python中引发多处理错误

时间:2017-02-07 22:11:41

标签: python exception parallel-processing

我有一些代码可以并行运行任务:

procs = []
for task in tasks:
    procs.append(multiprocessing.Process(target=foo, args=(task,)))
    procs[-1].start()
for proc in procs:
    proc.join()

我想添加foo()的能力来抛出我定义的TaskFailError。我希望这个错误最终终止程序,所以我将在上面的代码中重新加载它,但我想让其他任务先完成。我不知道该怎么做。我考虑过这样的事情:

procs = []
try:
    for task in tasks:
        procs.append(multiprocessing.Process(target=foo, args=(task,)))
        procs[-1].start()
    for proc in procs:
        proc.join()
except TaskFailError as err:
    for proc in procs:
        proc.join()
    raise err

但重复代码是一个红旗,如果第二个进程也引发错误会发生什么?

0 个答案:

没有答案