通常、Django アプリケーション レベルのプログラミング (ビューなど) で明示的にスレッドを使用する必要はありません。しかし、スレッドを介してサーバー側の分析を処理する興味深いライブラリに気付きました。
Django ビューでは、Python クライアントを使用して、別の (非デーモン) スレッドで HTTP POST を Web サービスにバッチ処理します。通常、スレッドではなく、このようなものにはRabbitMQを使用しますが、ライブラリの起動コストを下げたいと考えていました.
私の質問は、このアプローチに欠点はありますか? スレッドには追加のメモリ フットプリントがありますが、私はそれについてあまり心配していません。明らかに、開始されたリクエスト/スレッドの数に依存します。
スレッドがデーモンではなく、長時間実行される可能性があるという事実は問題ですか? Gunicorn プロセスが実行のメイン スレッドであり、無限ループで実行されると想定しているため、非デーモン スレッドが終了するまで待機する必要があるかどうかは一般的に問題ではありません。あれは正しいですか?
未解決の質問ですが、主なポイントは、Django/Gunicorn アプリにおける非デーモン スレッドの影響を理解することです。