Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 并发事务的个别超时_Python_Concurrency_Parallel Processing_Concurrent.futures - Fatal编程技术网

Python 并发事务的个别超时

Python 并发事务的个别超时,python,concurrency,parallel-processing,concurrent.futures,Python,Concurrency,Parallel Processing,Concurrent.futures,我看到了两种在中指定超时的方法 as_completed() wait() 这两种方法都处理N个正在运行的未来 我想为每个将来指定一个单独的超时 用例: 将来从数据库获取数据的超时时间为0.5秒 将来从HTTP服务器获取数据的超时时间为1.2秒 我如何使用concurrent.futures?或者这个库不是正确的工具 结论 相信mdurant的解决方案是一个很好的解决方案 我想下次我会使用不同的图书馆。也许asyncio对此有更好的支持。见: 如何实施您自己的: wait(dbfutu

我看到了两种在中指定超时的方法

  • as_completed()
  • wait()
这两种方法都处理N个正在运行的未来

我想为每个将来指定一个单独的超时

用例:

  • 将来从数据库获取数据的超时时间为0.5秒
  • 将来从HTTP服务器获取数据的超时时间为1.2秒
我如何使用
concurrent.futures
?或者这个库不是正确的工具

结论
  • 相信mdurant的解决方案是一个很好的解决方案
  • 我想下次我会使用不同的图书馆。也许asyncio对此有更好的支持。见:

    • 如何实施您自己的:

      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/check进行while循环,或者使用短超时等待)

      是的,我认为这是唯一的解决方案。不太好,但是有一个工作环境。我想下次我会使用异步io: