API REST Flask очень медленный на простой конечной точке - PullRequest
0 голосов
/ 09 марта 2019

Я использую 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?

1 Ответ

0 голосов
/ 13 марта 2019

Развертывание в AWS Beanstalk решило проблему. Я не знаю, виноваты ли в этом ограничения встроенного сервера разработки, но именно это и помогло мне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...