我正在使用CherryPy为SymPy创建一个基于Web的前端,它在服务器端使用异步进程库,允许一次处理多个请求,而无需等待每个请求完成。为了允许前端按预期运行,我在每个会话的整个过程中使用一个进程。当用户提交请求时,客户端Javascript将会话ID从cookie发送到服务器,服务器端当前使用一对列表,将控制器类的实例存储在一个中,并将相应的会话ID存储在另一个,创建一个新的解释器代理并在提交不存在的session-id时发送输入。唯一的问题是代理类在相应会话到期时不会被删除。此外,我看不到任何要检索正在为其提供当前请求的会话ID的内容。
我对这一切的疑问是:有没有办法将一个任意对象“连接”到CherryPy会话,以便在会话到期时被删除,我在这里可以忽略的东西会大大简化事情,并且CherryPy的多线程否定了从子进程同步读取stdout文件句柄的问题?
答案 0 :(得分:1)
您可以创建自己的会话类型,派生自CherryPy的基本会话。使用其clean_up方法进行清理。
请查看cherrypy / lib / sessions.py以获取详细信息和示例会话实现。