我看到在 concurrent.futures
中有两种指定超时的方法:
as_completed()
wait()
这两种方法都可以处理N个正在运行中的future。
我想为每个future指定单独的超时时间。
用例:
- 从DB获取数据的Future的超时时间为0.5秒。
- 从HTTP服务器获取数据的Future的超时时间为1.2秒。
我该如何使用 concurrent.futures
处理这个问题?或者说这个库不适合做这件事吗?
结论
- 据我所知,mdurant的解决方案是一个好的变通办法。
- 下次我可能会使用另一个库。也许 asyncio 对此有更好的支持。请参见:https://docs.python.org/3/library/asyncio-task.html#asyncio.sleep