首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >plone 4.1上长事务期间的ReadConflictError

plone 4.1上长事务期间的ReadConflictError
EN

Stack Overflow用户
提问于 2013-11-28 09:45:44
回答 1查看 159关注 0票数 1

我们有一个很长的请求,它执行目录搜索,然后计算一些信息,然后将其存储在另一个文档中。Do调用在存储之后为文档建立索引。

在日志中,我们收到诸如INFO ZPublisher.Conflict ConflictError at /pooldb/csvExport/runAgent:数据库冲突错误(oid 0x017f1eae,类BTrees.IIBTree.IISet,序列this txn started with 0x03a30beb4659b266 2013-11-27 23:07:16.488370,序列当前提交0x03a30c0d2ca5b9aa2013-11-27 23:41:10.464226) (自Mon 11月25:59:08 2013启动以来19个冲突(0未解决))等错误,事务正在中止并重新启动。

我读过的所有文档都说,由于ZODB中的MVVC,ReadConflicts不再发生。因为这是用RestrictedPython编写的,所以放入一个保存点并不是一个简单的选择(但我猜可能是我惟一的选择)。

有没有其他方法可以避免这种冲突?如果我需要使用保存点,谁能想到一个安全原因,为什么我不应该将PythonScripts中使用的保存点事务方法列入白名单?

EN

回答 1

Stack Overflow用户

发布于 2014-02-19 13:29:42

答案是,当同一对象上同时存在其他小事务时,确实无法进行涉及写入的大型事务。BTrees应该有一些特殊的冲突处理代码,但它似乎不适用于我正在处理的情况。

我认为管理这件事的唯一方法是类似this code which breaks the reindex into smaller transactions to reduce the chance of a conflict的东西。在zope/plone中真的应该有这样的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20256331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档