Стандарт Google App Engine Env w / Python 3 & Flask: высокая задержка для (не) запросов POST - PullRequest
1 голос
/ 10 апреля 2020

У меня странная проблема с вызовами в мой движок приложений: они показывают довольно высокую задержку для вызовов, которые идентифицируются в Trace (Google Cloud Console) как ни GET, ни POST, пожалуйста, смотрите скриншот.

enter image description here Звонки выполняются на мой /api, и все они исходят из кода Python на разных обычных веб-серверах, а также из Travi c CI, которые демонстрируют похожее поведение задержки .

Метод, используемый для совершения вызовов на /api, таков:

def performRequest(url, parameters, sslcontext):
    '''Perform request in a loop 10 times, because the central server’s instance might shut down unexpectedly during a request, especially longer running ones.'''

    success = False
    message = None
    data = urllib.parse.urlencode(parameters).encode('ascii')

    for i in range(10):
        try:
            response = urllib.request.urlopen(url, data, context=sslcontext)
            return True, response
        except:
            message = f'Response from {url} with parameters {parameters} after {i+1} tries: ' + traceback.format_exc().splitlines()[-1]

    return success, message

Странная часть заключается в том, что большую часть времени (за исключением случаев) вызовы, идентифицированные правильно, как POST, показывают низкая задержка, и аналогичные вызовы, не показывающие ни GET, ни POST, не показывают высокую задержку.

График хорошо показывает, что в основном происходят две категории задержек: одна линия около 100 мс, а другая линия 800-1000 мс. Более высокие - те, которые не определены как GET или POST, даже если вызовы выполняются с использованием тех же методов (выше Python метод).

Я измеряю скорость выполнения внутреннего кода сервера в моем flask - основанный на сервере, и обычно он меньше 100 мс.

Кто-нибудь знает, что происходит?

...