
どうなっているの?
物事には順序がある:パニくらない
直感的には、
log_request
を実行するために専用のスレッドに追加したコードを取り消して、元の
状態に戻そうと思うかもしれません。しかし、慌ててそのコードを削除してはいけません。慌てずにト
レースバックメッセージに
2
回現れた、次の説明的な段落を確認してみましょう。
...
This typically means that you attempted to use functionality that needed
an active HTTP request. Consult the documentation on testing for
information about how to avoid this problem.
...
このメッセージは、
threading
モジュールではなく
Flask
からのものです。また、
threading
モ
ジュールは
threading
モジュールを使う目的はどうでもよくて、
HTTP
の動作は関係ありません。
スレッドの実行をスケジューリングするコードをもう一度調べてみましょう。このコードの実行には
15
秒かかることがわかっています。これは
log_request
にかかる時間です。この
15
秒間に何が起こっ
ているのでしょうか。
@app.route('/search4', methods=['POST'])
def do_search() -> 'html':
phrase = request.form['phrase'] ...