Pool.map只是挂起 - 如何进行异常处理

时间:2013-10-27 19:33:47

标签: python multithreading multiprocessing

我有以下代码:

pool = Pool(10)
pool.map(run_update_procedure, titles_to_update)

有时pool.map仅适用于上述20 titles中的大约18个。这会导致程序挂起。

有没有办法做类似的事情:

try:
    pool.map(...)

如果地图失败,该功能会继续吗?我如何将此异常处理构建到多处理?

基本上,如果线程在x时间内没有完成,我想杀死它。

1 个答案:

答案 0 :(得分:3)

我的建议是(最好)修复run_update_procedure超时或其他行为更好(here's可能有帮助的潜在代码段),而不是挂起,切换到multiprocessing.Pool的{​​{1}}或apply_async,并向map_async提供timeout参数。

示例:

AsyncResult.get()