18.24.7 MultiCall オブジェクト

バージョン 2.4 で 新たに追加 された仕様です。

遠隔のサーバに対する複数の呼び出しをひとつのリクエストにカプセル化 する方法は、http://www.xmlrpc.com/discuss/msgReader%241208 で 示されています。

クラス MultiCall( server)

巨大な (boxcar) メソッド呼び出しに使えるオブジェクトを作成します。 server には最終的に呼び出しを行う対象を指定します。 作成した MultiCall オブジェクトを使って呼び出しを行うと、 即座にNone を返し、呼び出したい手続き名とパラメタに保存する だけに留まります。 オブジェクト自体を呼び出すと、それまでに保存しておいたすべての 呼び出しを単一のsystem.multicall リクエストの形で伝送します。 呼び出し結果はジェネレータになります。このジェネレータにわたって イテレーションを行うと、個々の呼び出し結果を返します。

以下にこのクラスの使い方を示します。

multicall = MultiCall(server_proxy)
multicall.add(2,3)
multicall.get_address("Guido")
add_result, address = multicall()

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。