Высокая задержка между клиентом, App Engine и облачным SQL - PullRequest
0 голосов
/ 10 июня 2018

У меня есть приложение Google Flex App Engine, которое получает сообщения POST с данными JSON, а затем выполняет оператор вставки с использованием SQLAlchemy, который записывает данные JSON в базу данных Cloud SQL.Задержка между устройством POST (в Далласе) и App Engine (восток США) значительно превышает 300 мс, а иногда достигает 1500 мс.Я полагаю, что это может быть связано с плохой скоростью записи INSERT, хотя загрузка вряд ли "смешная" или что-то еще.Примерно до 5-8 операций чтения / с и 150-300 операций записи / с

с использованием Flask, SQLAlchemy, MySQL 5.6 (в облачном SQL) и экземпляра Google Flex App Engine 2-го поколения.

Моя проблема в том, что мне нужно сбросить задержку, и я не могу понять, что ее вызывает.Я выполнил команды traceroute и ping для IP-адреса, который отправляет данные json на страницу приложения Flask, размещенную в Google App Engine.Пинг в порядке, сбой в одном прыжке, но это только одна область.Если у меня слишком большая задержка, 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"
...