【问题标题】:Individual timeouts for concurrent.futuresconcurrent.futures 的个别超时
【发布时间】:2016-11-22 05:17:09
【问题描述】:

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

  • as_completed()
  • wait()

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

我想为每个未来指定一个单独的超时时间。

用例:

  • 未来从 DB 获取数据的超时时间为 0.5 秒。
  • 未来从 HTTP 服务器获取数据的超时时间为 1.2 秒。

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

结论

【问题讨论】:

    标签: python concurrency parallel-processing concurrent.futures


    【解决方案1】:

    如何实现自己的:

    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()]
    

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

    【讨论】:

    猜你喜欢
    • 2011-09-24
    • 2020-05-18
    • 2019-05-29
    • 2015-07-06
    • 2014-09-13
    • 2021-12-10
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多