問題タブ [waitress]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1793 参照

python - 内部でマルチプロセッシングを使用しているときに、API を介してフラスコサーバーを再起動する方法

リクエスト後にデータを取得するウェイトレスを備えたフラスコアプリがあり、長い計算を実行してlong_function結果を返します。これらの計算は並列でpebbleあり、タイムアウト オプションが必要なため使用しています。また、ユーザーがサーバーを再起動するリクエストを送信できるようにしたい (つまり、スレッドの数を変更したいwaitress)

私はこの解決策を見つけましたhttps://gist.github.com/naushadzaman/b65534d912f1551c7d8366b326b7a151pebbleほとんどの場合は機能しますが、プール とうまくやり取りしません。サーバーがプールにあるときにサーバーをリロードできません。マルチプロセッシングを使用long_function_without_poolしない を使用すると、サーバーが現在何らかのジョブを実行していても、サーバーをリロードできます (もちろん、結果は失われますが、これが私が望んでいることです)。しかしlong_function、プールが閉じられるのを待つ必要があり、それからサーバーを再起動できます。プールがまだ開いているときに再起動要求を送信しようとすると、エラーが発生します。

OSError: [Errno 98] Address already in use

したがって、ランニングp.terminate()がある場合は機能しないと思います。Pool

このコードを修正するにはどうすればよいですか、または別のソリューションを使用する必要がありますか?

このエラーを再現する簡単な手順:

  1. アプリを起動

  2. 本文が空の POST リクエストをhttp://localhost:5221/に送信します

  3. 応答を受け取る前に (5 秒かかります)、GET 要求を変数なしでhttp://localhost:5221/restart/に送信します。

  4. 楽しい。サーバーがスタックしており、何にも応答していません

    /li>
0 投票する
1 に答える
2095 参照

python - コマンド ラインを使用して Windows でウェイトレス フラスコ アプリを実行できない

サンプル フラスコ アプリ用に Windows でウェイトレス WSGI を実行しようとしていますが、動作せず、エラーが発生します。

私は使っている

以下は、同じディレクトリにある私の2つのファイルです

myapp.py

create_app.py