Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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_Asynchronous_Sleep - Fatal编程技术网

Python 在给定时间内组合多个异步调用结果的最佳实践

Python 在给定时间内组合多个异步调用结果的最佳实践,python,asynchronous,sleep,Python,Asynchronous,Sleep,我正在使用time.sleep()定期检查有多少异步调用返回。我想知道最佳实践 我对某些服务使用异步调用,并且需要在特定时间内返回结果 为了简化讨论,让我们假设一个全局变量num_calls_returned用于跟踪返回的异步调用的数量 import datetime import time num_calls_returned = 0 start_time = datetime.datetime.now() now = start_time while num_calls_returned

我正在使用time.sleep()定期检查有多少异步调用返回。我想知道最佳实践

我对某些服务使用异步调用,并且需要在特定时间内返回结果

为了简化讨论,让我们假设一个全局变量num_calls_returned用于跟踪返回的异步调用的数量

import datetime
import time

num_calls_returned = 0

start_time = datetime.datetime.now()
now = start_time
while num_calls_returned < 5 and now - start_time < datetime.timedelta(seconds=10):
    time.sleep(0.1)
    now = datetime.datetime.now()
导入日期时间
导入时间
num\u calls\u returned=0
start\u time=datetime.datetime.now()
现在=开始时间
当num_calls_返回<5并且现在-start_time

上面的代码有效,但我想知道最佳实践。代码调用时间有多糟糕。sleep()?当然,now和delta的计算浪费了CPU时间,但我想它可以忽略不计。

您研究过吗?
时间。睡眠使用了最少的CPUIt。在不知道您要完成什么的情况下,不太清楚什么是最佳实践。如果您只是在等待结果,轮询有点违背了异步的目的,正如Iain所提到的。Check似乎最好使用的API是Asyncio.gather,但它没有超时参数。我的应用程序是一个从另一个服务异步获取数据并在给定时间间隔内返回结果的服务