4

我正在阅读GAE中异步获取请求的文档。Python 不是我的第一语言,所以我很难找出最适合我的情况的语言。我并不真正需要或关心请求的响应,我只需要它发送请求并忘记它并继续执行其他任务。

所以我尝试了文档中的代码:

from google.appengine.api import urlfetch

rpc = urlfetch.create_rpc()
urlfetch.make_fetch_call(rpc, "http://www.google.com/")

# ... do other things ...

try:
    result = rpc.get_result()
    if result.status_code == 200:
        text = result.content
        # ...
except urlfetch.DownloadError:
    # Request timed out or failed.
    # ...

try:但是除非我包含and ,否则这段代码不起作用except,我真的不关心。省略该部分会使请求无法通过。

在我不关心响应的情况下创建获取请求的最佳选择是什么,以便它只是开始请求,然后继续执行任何其他任务,并且永不回头?

4

2 回答 2

4

只需在

# ... do other things ...

评论是。当您完成其他操作时,请调用rpc.wait(). 请注意,它不是try/except使它起作用,而是get_result()调用。那可以换成wait().

所以你的代码看起来像这样:

from google.appengine.api import urlfetch

rpc = urlfetch.create_rpc()
urlfetch.make_fetch_call(rpc, "http://www.google.com/")

# ... do other things ... << YOUR CODE HERE

rpc.wait()
于 2012-06-19T19:25:53.920 回答
4

如果您不关心响应,响应可能需要一段时间,并且您不希望处理程序在向用户返回响应之前等待它完成,您可能需要考虑触发任务队列任务这会发出请求,而不是在面向用户的处理程序中进行。

于 2012-06-19T19:33:33.640 回答