我有以下代码:
pool = Pool(10)
pool.map(run_update_procedure, titles_to_update)
有时,pool.map这只适用于上述 20 个中的 18 个titles。这会导致程序挂起。
有没有办法做类似的事情:
try:
pool.map(...)
因此,如果地图失败,功能会继续吗?我如何将这种异常处理构建到多处理中?
基本上,如果线程没有在x时间内完成,我想杀死它。
我有以下代码:
pool = Pool(10)
pool.map(run_update_procedure, titles_to_update)
有时,pool.map这只适用于上述 20 个中的 18 个titles。这会导致程序挂起。
有没有办法做类似的事情:
try:
pool.map(...)
因此,如果地图失败,功能会继续吗?我如何将这种异常处理构建到多处理中?
基本上,如果线程没有在x时间内完成,我想杀死它。
我的建议是(最好)修复run_update_procedure超时或以其他方式表现得更好(这里有一个可能提供帮助的潜在片段),而不是挂起,或切换到multiprocessing.Pool'sapply_async或map_async,并timeout为AsyncResult.get().
例子:
pool = Pool(10)
result = pool.map_async(run_update_procedure, titles_to_update)
try:
updates = result.get(timeout=x)
except TimeoutError:
# handle timeout