REST API によって提供されるサービスがあり、Python ライブラリが python-requests を使用してそれをラップしています。
ローカル XML-RPC に接続するためにサード パーティ (Python ではない) によって設計された「ダム」ユーザー インターフェイスがあります。
次に、両端を接続し、XML-RPC 呼び出しを REST API に転送して、結果を返す必要があります。ほとんどが非同期であり、ユーザーにリアルタイムで返される結果には依存しません。XML-RPC 呼び出しのほとんどは、すぐに戻り、タスクをキューに入れ、他の呼び出しが後で結果を照会することになっています。データは、必要になるまで sqlite データベースに保存されます。
そこで、この中間層に twisted.web.xmlrpc を使用し、リモート呼び出しにリクエスト ベースの lib を使用することにしました。これは正常に動作します。たまにツイストのメインループを数秒間ブロックしていると思いますが、それは大したことではありません。
問題は、この中間層から REST API を提供する HTTP サーバーに大きなファイルをアップロードする必要があることです。アップロードが完了するまでねじれたループがブロックされるため、リクエストベースのライブラリを使用してこれらのアップロードを行うことはできません。
私はむしろマルチスレッドを使用したくありません。また、ねじれたクライアントとして持っている python-requests ベースのライブラリを書き直したくありません。リクエストをツイストのメインループ、またはその他の合理的な解決策に統合する方法はありますか?