函数apply_async的multiprocessing.Pool类有争论error_callback在 Python 3中 。但是 Python 2中 缺少此参数。
apply_async
multiprocessing.Pool
error_callback
是否有任何技巧可以在Python 2中实现相同的功能?理想情况下,我想编写可在Python 2和3中运行的代码。
我还没有尝试过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, result or error traceback message )
这样该主进程将首先读取该标志is_success,然后相应地处理第二个参数。
is_success