実行に 10 分以上かかるレポートを要求する Web アプリケーションがあります。そのパフォーマンスを向上させることとは別に、今のところ、レポートを実行してユーザーにメールで送信し、その決定メッセージをユーザーにすぐに返すようにスレッドを設定することをお勧めします。
私はcherrypy.process.plugins.Monitorを見てきましたが、それが正しい選択であるかどうかはわかりません(頻度パラメータをどうするか?)
実行に 10 分以上かかるレポートを要求する Web アプリケーションがあります。そのパフォーマンスを向上させることとは別に、今のところ、レポートを実行してユーザーにメールで送信し、その決定メッセージをユーザーにすぐに返すようにスレッドを設定することをお勧めします。
私はcherrypy.process.plugins.Monitorを見てきましたが、それが正しい選択であるかどうかはわかりません(頻度パラメータをどうするか?)
モニターは正しい選択ではありません。スケジュールに従って同じタスクを繰り返し実行するためのものです。に電話したほうがいいでしょうthreading.Thread(target=run_report).start()
。202 Accepted
次に、クライアントがステータスを監視したり、準備が整ったときに新しく作成されたレポート リソースを取得したりするための URL とともに、ユーザーに戻ることができます。
これに対する 1 つの注意点は、cherrypy.engine が停止したときに、新しいスレッドを適切にシャットダウンする必要がある場合があることです。バスの「停止」チャネルに接続する方法の例については、さまざまなプラグインを参照してください。もう1つのオプションは、スレッドが異常終了してもかまわない場合は、スレッドをデーモンにすることです。