タグ付けされた質問 「waitress」

1
ウェイトレスは並行タスクをどのように処理しますか?
Djangoとウェイトレスを使用してpythonウェブサーバーを構築しようとしていますが、ウェイトレスが同時リクエストを処理する方法と、ブロッキングが発生する場合について知りたいのですが。 一方でウェイトレスのドキュメントは、複数のワーカースレッドが利用可能であることを言及し、それはPythonのGILは、それらを(強調私自身の)どのように影響するかを、彼らが実装されているとどのように多くの情報を提供していません。 チャネルは、クライアントが少なくとも1つの完全な有効なHTTPリクエストを送信したと判断すると、「スレッドディスパッチャー」を使用して「タスク」をスケジュールします。スレッドディスパッチャーは、クライアントの作業に使用できるワーカースレッドの固定プールを維持します(デフォルトでは4スレッド)。タスクのスケジュール時にワーカースレッドが使用可能な場合、ワーカースレッドはタスクを実行します。タスクはチャネルにアクセスでき、チャネルの出力バッファに書き戻すことができます。場合は、すべてのワーカースレッドが使用されている、スケジュールされたタスクはなりキューで待機ワーカースレッドが利用可能になるために。 Stackoverflowについてもあまり情報がないようです。「Gunicornのgthread非同期ワーカーはウェイトレスに似ていますか?」という質問から : ウェイトレスには、リクエストをバッファリングするマスター非同期スレッドがあり、リクエストI / Oが完了すると、各リクエストを同期ワーカースレッドの1つにエンキューします。 これらのステートメントは(少なくとも私の理解から)GILに対応しておらず、誰かがウェイトレスでワーカースレッドがどのように機能するかについてさらに詳しく説明できればすばらしいと思います。ありがとう!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.