gpt4 book ai didi

google-app-engine - App Engine 上的异步 urlfetch

转载 作者:太空宇宙 更新时间:2023-11-03 15:35:54 25 4
gpt4 key购买 nike

我的应用需要对每个请求执行许多数据存储操作。我想并行运行它们以获得更好的响应时间。

对于数据存储更新,我正在执行批量放置,因此它们都是异步发生的,从而节省了很多毫秒。 App Engine 允许 up to 500 entities并行更新。

但我还没有找到允许不同类型的数据存储提取并行执行的内置函数。

由于 App Engine 允许 urlfetch 调用 to run asynchronously ,我为每种类型创建了一个 getter URL,它将查询结果作为 JSON 格式的文本返回。现在我的应用程序可以对这些 URL 执行异步 urlfetch 调用,这可以并行化数据存储区提取。

此技术适用于少量并行请求,但 App Engine 在尝试同时运行超过 5 或 10 个这样的 urlfetch 调用时会抛出错误。

我现在只是在测试,所以每个 urlfetch 都是相同的查询;由于它们在小批量下工作正常但开始出现多个同时请求时失败,我认为它一定与异步 urlfetch 调用有关。

我的问题是:

  1. 可以异步运行的 urlfetch.create_rpc() 调用的数量是否有限制?
  2. 同步 urlfecth.fetch() 函数有一个“截止日期”参数,允许该函数在失败前最多等待 10 秒以获取响应。有什么方法可以告诉 urlfetch.create_rpc() 等待响应多长时间?
  3. 下面显示的错误是什么意思?
  4. 是否有更好的服务器端技术来并行运行不同类型的数据存储提取?

    文件“/base/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py”,第 501 行,在 get_result 中 返回 self.__get_result_hook(self) 文件“/base/python_lib/versions/1/google/appengine/api/urlfetch.py​​”,第 331 行,在 _get_fetch_result 中 提高 DownloadError(str(err))InterruptedError: ('Wait() 请求被另一个回调的异常中断:', DownloadError('ApplicationError: 5 ',))

最佳答案

由于 App Engine 允许异步 urlfetch 调用但不允许异步数据存储获取,因此我尝试使用 urlfetch RPC 从数据存储中并行检索。

缺少异步数据存储获取是一个公认的问题:

http://code.google.com/p/googleappengine/issues/detail?id=1889

现在有一个允许异步查询的第三方工具:

http://code.google.com/p/asynctools/

“asynctools 是一个允许您并行执行 Google App Engine API 调用的库。API 调用可以混合在一起并排队,然后所有并行启动。”

这正是我要找的。

关于google-app-engine - App Engine 上的异步 urlfetch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1965297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com