1

Python で XMLRPC を介して長い (時間のかかる) 関数を呼び出そうとしています。

私のserver.py:

import time
import SocketServer
import SimpleXMLRPCServer

PORT = 19989

class MyXMLRPCServer(SocketServer.ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer):
    pass

def hello():
    for x in xrange(10):
        yield "hello {}".format(x)
        time.sleep(1)

if __name__ == "__main__":
    server = MyXMLRPCServer(("", PORT),
                            requestHandler=SimpleXMLRPCServer.SimpleXMLRPCRequestHandler,
                            logRequests=True,
                            allow_none=True)
    server.register_function(hello)
    server.serve_forever()

と私の client.py:

import xmlrpclib

HOST, PORT = "localhost",   19989

if __name__ == "__main__":
    my_server = xmlrpclib.ServerProxy('http://{}:{}'.format(HOST, PORT))
    print my_server.hello()

hello()終了する前に、クライアント側で機能 (ロギングなど)の進行状況を確認する方法はありますか?

4

1 に答える 1