Zope2 session 文档: “Zope 将自动重试冲突错误,最终用户永远不会看到冲突错误。”
但是,尽管我认为我拥有高流量部署的最佳设置(ZEO 上 session 数据的临时存储、由四个客户端共享、具有相同设置的 zope 实例),但最终用户仍然会遇到数据库冲突错误。
搜索邮件列表,这似乎是Zope基于OOBTree实现 session 数据的常见问题。有些人建议使用 repoze.session,但自 2009 年以来不再支持。
还有其他方法可以修复 BTree/TransientObject 冲突错误吗? 我是否必须更改 session_data 的默认设置(数据对象超时值、超时分辨率、最大子对象数)?
最佳答案
我认为你最好的选择是将 session 实现切换为使用 Beaker,通过 Products.BeakerSessionDataManager 。它是默认 Zope2 session 管理器的直接替代品,但在高负载下性能更好,并且肯定不会遭受冲突错误。
关于session - Zope 2 冲突较少的 session 管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10187813/