python - concurrent.futures 的个别超时

标签 python concurrency parallel-processing concurrent.futures

我在 concurrent.futures 中看到两种指定超时的方法.

  • as_completed()
  • wait()

这两种方法都处理 N 个正在运行的 future 。

我想为每个 future 指定一个单独的超时。

用例:

  • future 从数据库获取数据的超时时间为 0.5 秒。
  • future 从 HTTP 服务器获取数据的超时时间为 1.2 秒。

如何使用 concurrent.futures 处理这个问题?或者这个库不是正确的工具?

结论

最佳答案

如何实现自己的:

wait(dbfutures + httpfutures, timeout=0.5)
[fut.cancel() for fut in bdfutures if not fut.done()]
wait(httpfutures, timeout=0.7)
[fut.cancel() for fut in httpfutures if not fut.done()]

(或带有 sleep /检查的 while 循环或短超时等待)

关于python - concurrent.futures 的个别超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38456357/

相关文章:

python - ftplib.FTP_TLS 启动 key 交换失败

python - 使用 numpy as_strided 检索以主对角线为中心的子数组

java - 访问用作缓存的HashMap

Oracle - SELECT-INSERT 锁定模式

c++ PPL并行工作-归约类 'combinable'中的函数max()

c# - 在迭代方法调用的结果时,Parallel.Foreach 将如何表现?

python - 用 Python 绘制双箱线图(2 轴箱线图;箱线图相关图)

python - 使用 Flask 查看多部分表单请求参数值

c++ - 使用 std::atomic<T*> 作为围栏

bash - 有什么工具可以并行化具有不同 CPU 要求的 bash 命令吗?