- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 google app engine 上使用 python,并不断收到 google.appengine.api.urlfetch_errors.DeadlineExceededError
从一台做一些后端处理的机器发出的请求。这些请求大约需要 60 秒,有时会更长一些,所以我试图延长截止日期。
请求包含在重试中,从日志中我可以看到重试之间的时间始终约为 60 秒。我认为这是因为我配置不正确,或者误解了截止日期的限制。
机器配置是:
instance_class: B8
basic_scaling:
max_instances: 1
idle_timeout: 10m
我使用的代码是(为简单起见进行了编辑):
from google.appengine.api import urlfetch
from retrying import retry
timeout = 600
retries = 10
@retry(
stop_max_attempt_number=retries,
wait_exponential_multiplier=1000,
wait_exponential_max=1000*60*5
)
def fetch(url):
"""Fetch remote data, retrying as necessary"""
urlfetch.set_default_fetch_deadline(timeout)
result = urlfetch.fetch(url)
if result.status_code != 200:
raise IOError("Did not receive OK response from server")
return result.content
data = fetch(config['url'])
我已经尝试将截止日期明确设置为 urlfetch.fetch(url, deadline=timeout)
但设置默认值似乎是大多数人建议的方法。
谁能澄清是否有可以为deadline
设置的最大值?
最佳答案
请求计时器
Google App Engine 请求计时器 (Java/Python/Go) 确保请求具有有限的生命周期并且不会陷入无限循环。目前,前端实例请求的截止时间为 60 秒。 (后端实例没有相应的限制。)每个请求,包括预热(请求/_ah/warmup)和加载请求(“loading_request=1”日志头),都受此限制。
如果请求未能在 60 秒内返回并且抛出 DeadlineExceededError 但未被捕获,则请求将中止并返回 500 内部服务器错误。如果捕获到 DeadlineExceededError 但没有足够快地产生响应(您的时间少于一秒),则请求将中止并返回 500 内部服务器错误。
就我阅读文档而言,我认为应用引擎中的最大请求超时为 60 秒。 Here is the link to the documentation
关于python - google.appengine.api.urlfetch 的截止日期是否限制为 60 秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41587460/
这是我尝试通过 Google 电子表格图表上的 JavaScript 工具运行的函数,该函数当前在 4 个不同的网站上运行,在此示例中: $id 是从我的电子表格单元格 (belacoin) 导入的值
我在 GAE 1.7.4 上使用 urlfetch API...我尝试通过以下方式进行获取: result=urlfetch(http://localdomain:8080/static/tabcon
我有一个 App Engine 应用程序尝试获取长网址。经过实验后,似乎由于某种原因,App Engine 将获取的 url 长度限制为 2047。这是错误的堆栈跟踪: File "/base/dat
我正在使用 Appengine-Java 开发一个网络应用程序。我是这个领域的新手,我很难过。 我目前正在使用循环。每个循环从列表中访问某个 isbn,然后通过 urlFetch 获取书籍的详细信息。
如果我使用以下代码: result = urlfetch.fetch(url=url_get_devices, payload='',
我正在尝试将位于 Blobstore 中的文件从 GAE 发布到另一个 HTTP 服务 (virustotal)。 当前代码段适用于小文件(1 - 2 mb): import base64 impor
我正在尝试在谷歌应用引擎应用程序中向 python 中的粒子服务器发出请求。 在我的终端中,我可以简单而成功地完成请求,请求如下: res = requests.get('https://api.pa
我注意到在 Java 实现中似乎存在对 urlfetch 的同时异步调用的限制(如此处所述:http://code.google.com/appengine/docs/java/urlfetch/ov
在我为 GAE 编写的一些代码中,我需要定期对另一个系统上的 URL 执行 GET,本质上是“ping”它,如果请求失败、超时或成功,我并不十分担心。 因为我基本上想“即发即忘”而不是通过等待请求来减
我想知道 Google App Engine URL Fetch Python API不支持访问具有凭据的 URL: http://username:password@www.domain.com/
我正在尝试通过 Google Apps 脚本运行 MongoLab(基于 REST 的 MongoDB 访问)查询。从记录器生成的 URL 如下所示 https://api.mongolab.com/
是否可以更改与 Google Apps 脚本一起使用的用户代理字符串 UrlFetchApp.fetch要求? This discussion从 2010 年开始暗示 Google Apps Scri
目标是运行大约 10,000 行链接。确定页码 > 3 的页码并突出显示第一列。我已经完成了所有这些,但问题是 Url Fetch 花费的时间太长,我遇到了最大运行时间错误。无论如何,我可以加快这段代
我已经用 Python 构建了一个由 Node 应用程序获取的 App 引擎 API。该 API 按预期工作(1)生产中的获取和发布请求以及(2)开发中的获取请求。它在开发中的发布请求上失败,我可以使
使用 Google App Engine,我试图从包含一个 csv 文件的 URL 中 urlfetch 一个 gzip 文件。 最终我想在我的网页上输出csv文件的内容。 我现在有以下代码: #!/
嘿。我对 App Engine 很陌生。我创建了一个基于 Web 的 Twitter 应用程序,该应用程序现在运行在 App Engine 上,并且我不断地达到我的 CPU 超过配额限制。我做了一些分
我有两个正在运行的 App Engine 应用程序实例,我想通过 Restful 接口(interface)进行通信。一旦其中一个的数据更新,它就会调用第二个的 Web 钩子(Hook),后者将为自己
我正在尝试加载一个重定向到自身的 url。我假设它正在加载一个 cookie 并正在寻找它,但它从来没有看到它,所以存在这个无限循环的请求。 我试过 urllib2、urlfetch 和 httpli
根据GAE fetch documentation , cookie 不使用重定向处理: Cookies are not handled upon redirection. If cookie han
我有一个 Google Appengine 应用程序使用 urllib2 POST 从另一台服务器请求页面。我最近在另一台运行 Apache2 的服务器上启用了 gzip 压缩,Appengine 页
我是一名优秀的程序员,十分优秀!