Twistedでクライアントプロトコルを実装すると、現在のコードは受信した各プロトコルユニットで多くの作業を行い、I / Oを使用しないため、現在Deferredは使用されていません。処理は集中的なものではありませんが、プラグ可能なインターフェイスに対して開かれています。
このパーティションを作成するためのしきい値はありますか?
データベース、リモート プロセス、Web サービスなどへの I/O を実行するかどうかを予測できないため、プラグインが呼び出されるポイントで「遅延」を検討することもできます。
の使用を検討してください。Python のステートメント@inlineCallbacks
を使用するだけで、処理を Deferred に分割するという点で生活が簡素化されます。yield
次に、計算負荷の高い作業をさまざまな方法で分割して実験できます。おそらく、他のプロトコル ハンドラーを実行して完了する機会を与えることができます。特に、一部のハンドラーが計算負荷が高く、他のハンドラーがそうでない場合はそうです。