【问题标题】:How to prevent GAE from throwing ERROR 502?如何防止 GAE 抛出 ERROR 502?
【发布时间】:2020-04-12 09:44:21
【问题描述】:

就我而言,这是由于我的应用程序需要很长时间才能发送响应而引起的。我只想知道我应该将哪些参数添加到我的app.yaml 文件中,以便deadline从 30 秒变为 120 秒。
我的app.yaml代码

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT app:app

runtime_config:
    python_version: 3

resources:
    cpu: 4
    memory_gb: 8

【问题讨论】:

    标签: google-app-engine yaml app.yaml


    【解决方案1】:

    根据官方文档,App Engine Standard 针对具有短时间请求的应用程序进行了优化,几百毫秒

    但是,请求可能需要长达 60 秒的时间才能响应。在此时间段之后,请求处理程序将被中断。

    How Requests are Handled.

    一个应用程序不能很好地与 App Engine 的 基础设施。

    我建议使用Google Stackdriver Trace 来查找您的应用程序请求执行时间大于 60 秒的原因。

    编辑

    提供的答案是针对 Google App Engine 标准的。我注意到您正在使用 Google App Engine Flex。 60 秒的限制不适用于 Google App Engine Flex,因为

    应用实例在 Compute Engine 上的 Docker 容器中运行 虚拟机 (VM)。

    App Engine Flex 推荐用于:

    收到稳定流量的应用程序,体验正常 流量波动,或满足上下伸缩参数 逐渐地。

    Choosing an App Engine environment

    30 秒错误超时可能是 gunicorn 服务器超时。

    更改您的 app.yaml,添加 -t 120(超时 120 秒):

          runtime: python
          env: flex 
          entrypoint: gunicorn -t 120 -b :$PORT main:app
    

    在这里你可以找到一个相关的 SO 问题link

    【讨论】:

    • 我检查了日志。根据用户输入,响应需要更多时间。显然,我在我的后端抓取一个网站,所以根据用户输入,多个这样的页面被抓取。我不能再减少我的刮擦时间了。首先,我的应用需要 45 秒的响应时间,但我的应用在 30 秒左右显示 502 错误。我只是想知道有什么方法可以增加 App Engine 允许的时间?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 2022-01-07
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    相关资源
    最近更新 更多