Web からリアルタイムの市場データを頻繁に取得し、そのデータを MySQL データベースに格納する Web バックエンドに取り組んでいます。
現在、メインスレッドでタスクを Queue オブジェクトにプッシュしています。次に、そのキューから読み取る約 20 のスレッドがあり、タスクが利用可能な場合、それらはそれを実行します。
残念ながら、私はパフォーマンスの問題に直面しており、多くの調査を行った後、決心できません。
私が見ているように、私には 3 つのオプションがあります。Celery のようなもので分散タスク アプローチを採用する必要がありますか? GIL の問題を回避するには、JPython または IronPython に切り替える必要がありますか? それとも、処理を使用してスレッドの代わりに別のプロセスを生成する必要がありますか? 後者なら何工程くらいがいいの?優れたマルチプロセス プロデューサー/コンシューマー デザインとは?
ありがとう!