【问题标题】:Getting a 504 Gateway Error on Google App Engine (long runtime of Flask App)在 Google App Engine 上出现 504 网关错误(Flask App 的长时间运行)
【发布时间】:2020-07-01 17:15:42
【问题描述】:

我是第一次使用 Google Cloud Platform 和 Flask - 我的客户希望我在 2 周内提供解决方案。 到目前为止,我已经成功地创建了一个 Flask 应用程序,并希望通过 Google App Engine 对其进行生产。但是,我的函数的运行时间是 2.5 分钟多一点,我收到 "504 Gateway Timeout" 错误。在代码片段中,我正在访问 bigQuery、google 电子表格和 GCS 存储桶。我应该切换到新的 GCP 服务还是对我的代码/yaml 文件进行一些调整就足够了?我的 yaml 配置是 -

runtime: python37

liveness_check:
 check_interval_sec: 300
 timeout_sec: 299
 failure_threshold: 10
 success_threshold: 10
 initial_delay_sec: 500

readiness_check:
 app_start_timeout_sec: 1800

我将非常非常感谢任何可以帮助我解决此问题的人。 谢谢!

编辑:只是简单介绍一下该应用程序 - 这是一个预测应用程序,它从 bigquery、GCS 存储桶和 Google 电子表格中读取数据,对其进行处理并在其上运行 ML 模型。结果会在应用程序本身内写回 Google 电子表格(即每次查看都不需要应用程序的响应)。我正在使用 google AppsScript 触发应用程序。

【问题讨论】:

  • AppEngine 是标准的还是灵活的?标准允许请求最多花费 60 秒。
  • 不确定。你是说标准会更好?
  • App Engine Standard 可能不适合您。我会改用 Cloud Run。但是,您的问题中没有关于内存、CPU、存储、网络等要求的详细信息。其他选项包括 App Engine Flexible 和 Compute Engine。
  • 谢谢约翰。我对 GCP 很陌生,所以不确定如何提取有关实例的详细信息 - 试试 flex。 手指交叉

标签: google-app-engine flask google-cloud-platform app.yaml


【解决方案1】:

最好的选择是重组您的网站的运作方式。然后,您可以坚持使用 GAE 标准。即使您切换到 GAE 灵活,它也会以这种方式更好地工作。

以下是操作顺序:

  1. 用户从网页提交请求。
  2. 您的网站会立即返回一个页面,表明您正在处理它。
  3. 您返回的页面包含 Javascript,它将轮询您的网站以询问任务是否完成。
  4. 任务完成后,Javascript 将更新页面并将结果呈现给用户。

在服务器端,您可以使用云任务进行处理,我认为有 10 分钟的时间限制。

这样,用户始终在查看网页,而不是在等待服务器返回内容时坐在那里等待并看着空白屏幕。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    相关资源
    最近更新 更多