将会话支持添加到“无状态”xml-rpc 应用程序
Posted
技术标签:
【中文标题】将会话支持添加到“无状态”xml-rpc 应用程序【英文标题】:Tack on session support to a 'stateless' xml-rpc app 【发布时间】:2011-01-21 22:34:52 【问题描述】:我必须创建一个 python (twisted) 应用程序,它通过 XML-RPC 接受来自客户端的连接并执行可能需要多个步骤的操作。 xml-rpc 实现没有典型的会话支持,所以我需要实现它。
我认为我需要的是某种类型的持久对象,它可以跟踪多步操作的进度,并为客户端提供一个密钥,它可以用来识别它启动的操作、获取状态更新或发送命令(暂停/取消等)。
对我来说,一个合适的模型是“工作”;谷歌搜索“python 作业库”会产生预期的无用结果。
在我实现这个之前,有什么东西可以用来代替吗?
谢谢!
【问题讨论】:
【参考方案1】:我认为您可以在服务器中拥有一个持久对象,例如:
from twisted.web import xmlrpc, server
class MultiStep(xmlrpc.XMLRPC):
def __init__(self) :
xmlrpc.XMLRPC.__init__(self)
self.db =
def getX(self, user, x):
self.db[user] = 'x' : x
return 'OK'
def getY(self, user, y):
self.db[user]['y'] = y
return 'OK'
def plus(self,user) :
return self.db[user]['x'] + self.db[user]['y']
if __name__ == '__main__':
from twisted.internet import reactor
r = MultiStep()
reactor.listenTCP(6666, server.Site(r))
reactor.run()
【讨论】:
以上是关于将会话支持添加到“无状态”xml-rpc 应用程序的主要内容,如果未能解决你的问题,请参考以下文章