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()
これが役に立つかどうか教えてください。