客户端,App Engine和Cloud SQL之间的高延迟

时间:2018-06-10 16:27:09

标签: python google-app-engine sqlalchemy google-cloud-sql

我有一个Google Flex App Engine应用程序,它接收带有JSON数据的POST,然后使用SQLAlchemy执行插入语句,该语句将JSON数据写入Cloud SQL数据库。 POST设备(在达拉斯)和App Engine(us-east)之间的延迟远远超过300毫秒,有时超过1500毫秒。我相信这可能是因为INSERT写入速度不佳,尽管负载很难“荒谬”。什么的大约高达5-8读/秒和150-300写/秒

使用Flask,SQLAlchemy,MySQL 5.6(在Cloud SQL上)和第二代Google Flex App Engine实例。

我的问题是我需要减少延迟,但我无法弄清楚导致延迟的原因。我已经运行traceroute和ping命令到IP,将json数据发送到由Google App Engine托管的Flask App页面。 ping很好,一跳就有打嗝,但只有一个区域。如果我的延迟太高,IP可能会丢失POST。

from api import app
from sqlalchemy import create_engine
from datetime import datetime, timedelta

engine = create_engine(app.config.get("database_uri"))

Class Events(object):
    @staticmethod
    def add(event):
        connection = engine.connect()
        for observation in event["observations"]:
            try:
                connection.execute("""INSERT INTO events (
                    ...
                ) VALUES (
                    %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s
                )""", (
                    ...
                ))
            except Exception as ex:
                print(ex)
        connection.close()

这是由:

触发的
@app.route('/', methods=['POST'])
def events_post():
    data = request.json
    if data["secret"] != app.config.get("secret"):
        return
    Events.add(data["data"])
    return "Success"

0 个答案:

没有答案