Ctrl + C を使わずに Flask アプリケーションを停止する方法 質問する

Ctrl + C を使わずに Flask アプリケーションを停止する方法 質問する

flask-script を使用して flask アプリケーションを停止できるコマンドを実装したいと考えています。しばらく解決策を探していました。フレームワークはapp.stop()API を提供していないため、これをどのようにコーディングするかが気になっています。Ubuntu 12.10 と Python 2.7.3 で作業しています。

ベストアンサー1

デスクトップでサーバーを実行しているだけの場合は、エンドポイントを公開してサーバーを強制終了することができます(詳細は以下を参照)。シンプルサーバーをシャットダウンする):

from flask import request
def shutdown_server():
    func = request.environ.get('werkzeug.server.shutdown')
    if func is None:
        raise RuntimeError('Not running with the Werkzeug Server')
    func()
    
@app.get('/shutdown')
def shutdown():
    shutdown_server()
    return 'Server shutting down...'

より抑制された別のアプローチを次に示します。

from multiprocessing import Process

server = Process(target=app.run)
server.start()
# ...
server.terminate()
server.join()

これが役に立つかどうか教えてください。

おすすめ記事