首页 > 解决方案 > 在 Google App Engine 上发送“内部”http 请求

问题描述

我用蓝图构建了一个 Flask 应用程序。我想在不同的蓝图之间进行 http 调用,这似乎不起作用。请求不断超时。

不能在 Google App Engine 服务中进行 http 调用吗?

这是我的设置:

Blueprint 1
requests.post(url_for('asana_bp.create_task', _external=True), json=payload)


Blueprint 2
@asana_bp.route("/create", methods=["POST"])
@login_required
def create_task():
  data = request.get_json()
  return create_asana_task(message=data['message'], title=data['title'])

但这只是行不通。收到 502 错误。它工作得很好。url_for 正确创建 URL。

标签: google-app-engine

解决方案


作为记录。

问题是记忆。该实例只是一个 F1 小实例,似乎一次只能处理一个请求。因此,当执行一个显然会启动一个新实例的 http 请求时,虽然速度很慢,所以请求会超时,或者因为实例内存不足而被杀死。

解决方案很简单:增加实例大小或者在同一服务中不使用 http 请求。

第二个可能的问题可能是@login_required。不确定如何在 GAE 上跨多个实例进行会话处理。


推荐阅读