一尘不染

在multiprocessing中有error_callback。在Python 2中有池apply_async吗?

python

函数apply_asyncmultiprocessing.Pool类有争论error_callbackPython 3中 。但是
Python 2中 缺少此参数。

是否有任何技巧可以在Python 2中实现相同的功能?理想情况下,我想编写可在Python 2和3中运行的代码。


阅读 477

收藏
2021-01-20

共1个答案

一尘不染

我还没有尝试过python3。但是对我来说,为了捕获子进程中的错误,我将在子进程中运行的函数放在

import traceback


try:
    your code that can make error
except Exception as e:
    print e
    return False, traceback.format_exc()
else:
    return True, result

这样我就知道是否出了问题。

编辑:我将返回格式更改为OP的注释,以便子进程返回一个元组 (is_success, result or error traceback message )

这样该主进程将首先读取该标志is_success,然后相应地处理第二个参数。

2021-01-20