我试图更好地了解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"
答案 0 :(得分:3)
正在发生两件事: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秒后超时。我敢肯定,如果尝试更长的时间,您也会得到类似的行为,但是通常您不应该依赖可用的额外运行时。