我有以下代码:
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