Esta é uma pergunta antiga, mas pesquisar no Google não me deu nenhuma ideia de como fazer isso.
Porque eu não li o código aqui corretamente! (Doh!) O que faz é levantar um RuntimeError
quando não há werkzeug.server.shutdown
no request.environ
...
Então, o que podemos fazer quando não há request
é levantar umRuntimeError
def shutdown():
raise RuntimeError("Server going down")
e pegue isso quando app.run()
retornar:
...
try:
app.run(host="0.0.0.0")
except RuntimeError, msg:
if str(msg) == "Server going down":
pass # or whatever you want to do when the server goes down
else:
# appropriate handling/logging of other runtime errors
# and so on
...
Não há necessidade de enviar um pedido a si mesmo.