我试图通过Python中的XMLRPC调用一个长(耗时)函数。在
我的服务器.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()
还有我的客户端.py公司名称:
^{pr2}$有没有一种方法可以在完成之前查看hello()
函数在客户端的进度(例如日志记录)?在
这里有一个similar question在SO上,试图达到同样的效果。引用其accepted answer:
2nd answer from that显示了在XMLRPCServer中正确实现
yield
的方法。Esp,因为当前代码给出错误:xmlrpclib.Fault: <Fault 1: "<type 'exceptions.TypeError'>:cannot marshal <type 'generator'> objects">
。在相关问题 更多 >
编程相关推荐