首页 > 解决方案 > 异步 http 的新手:如何解决这个问题?

问题描述

我还没有编写异步 Python 程序,而且我很难开始。我想要做的是带有大致这个伪代码的http请求:

WorkQueue = stuff
ResultsQueue = empty

for Slot_N in range(0,N):
    [[launch an http request from WorkQueue]]

然后无需显式等待任何给定的请求,因为每个 http 请求都以任何顺序完成......

while any request is active:
    wait for any request to deliver
    Add that request's results to ResultsQueue

    if WorkQueue isn't empty:
        [[launch another request from WorkQueue]]

也许我表达得不好,但重点是从工作队列中异步启动许多请求,以它们到达的任何顺序累积它们的结果,并通过尽快启动另一个请求来保持槽池充满http请求作为较早的一个提供结果并释放一个插槽。当工作队列为空时,程序完成。

我真正不清楚的是在异步请求终止时处理结果的机制,而不阻塞等待任何单个结果,以及正确排队启动和记录结果。

你能帮忙吗,或者给我一些非常清楚的例子,我可以把我的简单想法包装起来?

标签: pythonhttpasynchronouspython-requestsqueue

解决方案


推荐阅读