我有一个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"