python - 如何从异步请求应用程序引擎中的RPC对象获取响应URL?

标签 python google-app-engine asynchronous urlfetch

rpcs = []
for url in urls:
  rpc = urlfetch.create_rpc(deadline=5.0)
  urlfetch.make_fetch_call(rpc, url)
  rpcs.append(rpc)
while len(rpcs) > 0:
  rpc = apiproxy_stub_map.UserRPC.wait_any(rpcs)
  res = rpc.get_result()
  if res.status_code == 200:
    ...... do something with result
  rpcs.remove(rpc)

如何确定从哪个 url 收到响应?

最佳答案

使用回调:

def handle_result(rpc, url):
  ..... [your code goes here]

def create_callback(rpc, url):
  return lambda: handle_result(rpc, url)

rpcs = []
for url in urls:
  rpc = urlfetch.create_rpc(deadline=5.0)
  rpc.callback = create_callback(rpc, url)
  urlfetch.make_fetch_call(rpc, url)
  rpcs.append(rpc)

while rpcs:
  rpc = apiproxy_stub_map.UserRPC.wait_any(rpcs)
  rpcs.remove(rpc)

关于python - 如何从异步请求应用程序引擎中的RPC对象获取响应URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881459/

相关文章:

python - 确定 simple_form 对象是否已提交

python - 使用 python 将 bibtex 文件转换为 html(也许是 pybtex?)

google-app-engine - 在 Google App Engine 上持续集成/部署/交付,风险太大?

python - 用户的Google NDB数据存储支票帐户/电子钱包。如何计算余额

javascript - HTML5 - 上传文件而不在客户端处理它

python - Flask Mongoengine 文本搜索无法解析字段

python - Django 1.9 弃用警告 app_label

java - Google 应用引擎 - 提交表单

python - 如何在 Tornado.WebSocket 类中异步运行循环函数?

html - C# 从站点获取完整的 html 文档