私の目標は、Flask アプリケーションの起動後に任意のコードを実行することです。これが私が持っているものです:
def run():
from webapp import app
app.run(debug=True, use_reloader=False)
理想的には、これを行うことができます:
def run():
from webapp import app
app.run(debug=True, use_reloader=False)
some_code()
しかし、コードは を超えて継続しないapp.run()
ため、 some_code() は実行されません。
私が現在取り組んでいる解決策は、 app.run() とは別のスレッドで some_code() を実行し、これを設定する最初のリクエスト関数の前に作成することです:
app.is_running = True
次に、 some_code() を取得してアプリへの基本的なリクエストを送信し、「最初のリクエストの前」コードが実行されるようにします。これはかなり複雑で、文書化するのは難しいでしょう。Flask で既に提供されている app.is_running パラメータを使用するか、@app.after_server_start
デコレータを使用したいのですが、私の知る限り、どちらも存在しません。
このコードを改善するのを手伝ってください。
死後: この問題について考えるたびに、@app.after_server_start
デコレータが存在することを願っています。