Почему я не получаю DeadlineExceededError с этим приложением GCP App Engine? - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь лучше понять Google App Engine, в частности, сроки обработки запросов. В документации указано:

Обработчик запроса имеет ограниченное количество времени для генерации и возврата ответ на запрос, обычно около 60 секунд. Однажды срок истек, обработчик запроса прерван.

Я понял, что это означает, что вызов функции Sleep ниже (через [project-id] .appspot.com / sleep url) может привести к ошибке, но это не так. Я запустил его в течение 600 секунд, и он все еще дал ожидаемый ответ.

import time
from flask import Flask

# If `entrypoint` is not defined in app.yaml, App Engine will look for an app
# called `app` in `main.py`.
app = Flask(__name__)


@app.route("/")
def hello():
    """Return a friendly HTTP greeting."""
    return "Hello World!"


@app.route("/sleep")
def sleep():
    sleep_time = request.args.get("time", default=120, type=int)
    time.sleep(sleep_time)
    return f"slept {sleep_time} seconds"

1 Ответ

0 голосов
/ 07 января 2019

Происходят две вещи: App Engine здесь щедрый, и вы еще не совсем превысили лимит. Я попробовал следующее приложение:

import time
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    """Return a friendly HTTP greeting."""
    time.sleep(1000000)

    return "Hello World!"

И время истекло после 601,9 секунд . Я уверен, что у вас будет похожее поведение, если вы попробуете дольше, но в целом вы не должны зависеть от того, какая дополнительная среда выполнения доступна.

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