Я использую API-интерфейс Flask REST для своего приложения и заметил, что когда я отправляю запросы из-за пределов собственной сети, иногда это происходит очень и очень медленно.Большинство вызовов завершаются в течение 150 мс, но некоторые занимают 8 секунд.Соединение с базой данных осуществляется с базой данных MySQL с использованием DBUtils.PersistentDB
Код конечной точки:
@app.route("/name", methods=["POST"])
@jwt_refresh_token_required
def get_name_and_company():
user = get_jwt_identity()
response_object = server_functions.get_name_and_company(user)
return response_object
Используемая функция:
def get_name_and_company(user):
sql = "SELECT fysios.firstname, fysios.lastname, companies.name FROM
fysios " +\
"INNER JOIN companies ON fysios.companyID = companies.id WHERE fysios.email = %s"
cursor = flask_server.get_db().cursor()
cursor.execute(sql, user)
data = cursor.fetchall()
first_name = data[0]['firstname']
last_name = data[0]['lastname']
company = data[0]['name']
response_object = name_and_company(first_name, last_name, company)
return make_response(jsonify(response_object)), 200
Вотметки времени на сервере Flask (это внутренний сервер разработчика, но я запускаю его с threadaded = True):
[08/Mar/2019 22:16:54] "OPTIONS /login HTTP/1.1" 200 -
[08/Mar/2019 22:16:55] "POST /login HTTP/1.1" 200 -
[08/Mar/2019 22:16:55] "OPTIONS /clients HTTP/1.1" 200 -
[08/Mar/2019 22:16:55] "OPTIONS /verifyLogin HTTP/1.1" 200 -
[08/Mar/2019 22:16:55] "POST /clients HTTP/1.1" 200 -
[08/Mar/2019 22:16:57] "POST /verifyLogin HTTP/1.1" 200 -
[08/Mar/2019 22:16:57] "OPTIONS /name HTTP/1.1" 200 -
[08/Mar/2019 22:16:58] "POST /clients HTTP/1.1" 200 -
[08/Mar/2019 22:17:05] "POST /name HTTP/1.1" 200 -
Как видите, / name занимает всего 8 секунд, и я могу 'не знаю почему.Этот вызов / имя является лишь примером, он может произойти на любом из вызовов.Есть ли способ узнать, где на самом деле застряло приложение Flask?