У меня есть приложение 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"