具有并发请求的Python XMLRPC


问题内容

我正在寻找一种防止多个主机同时向Python
XMLRPC侦听器发出命令的方法。侦听器负责运行脚本以在该系统上执行任务,如果多个用户尝试同时发出这些命令,这些任务将失败。有没有办法可以阻止所有传入请求,直到单个实例完成?


问题答案:

我认为python
SimpleXMLRPCServer模块就是您想要的。我相信当当前请求正在处理时,该模型的默认行为会阻止新请求。默认行为给我带来了很多麻烦,我通过在ThreadingMixIn类中混合使用来更改了该行为,以便我的xmlrpc服务器可以同时响应多个请求。

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

如果我正确理解您的问题,则可以使用SimpleXMLRPCServer。只需直接使用即可。