【问题标题】:Tack on session support to a 'stateless' xml-rpc app将会话支持添加到“无状态”xml-rpc 应用程序
【发布时间】:2011-01-21 22:34:52
【问题描述】:

我必须创建一个 python (twisted) 应用程序,它通过 XML-RPC 接受来自客户端的连接并执行可能需要多个步骤的操作。 xml-rpc 实现没有典型的会话支持,所以我需要实现它。

我认为我需要的是某种类型的持久对象,它可以跟踪多步操作的进度,并为客户端提供一个密钥,它可以用来识别它启动的操作、获取状态更新或发送命令(暂停/取消等)。

对我来说,一个合适的模型是“工作”;谷歌搜索“python 作业库”会产生预期的无用结果。

在我实现这个之前,有什么东西可以用来代替吗?

谢谢!

【问题讨论】:

    标签: python session


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-18
      • 2017-01-10
      • 2019-05-12
      • 1970-01-01
      • 2011-09-12
      • 2011-11-07
      • 2012-02-18
      • 1970-01-01
      相关资源
      最近更新 更多