我目前正在定制一个名为Atlassian Confluence的内容管理系统。如何同步2个线程进行数据库提交?
在此CMS中,您可以执行诸如创建/编辑页面以及将文件上载到页面并渲染它们(如图像或ms office文档)。
如果您创建一个页面然后编辑它10次(点击“编辑”,输入一些新文本,点击“保存”10次),CMS将创建10个版本的同一页面。所以你基本上不会失去任何东西
但是,我一直注意到这款产品偶尔会创建2个,有时是3个新版本,只有一个编辑!所以我当然一直在谷歌上搜索这一点,并发现了类似的问题报告:
https://jira.atlassian.com/browse/CONF-13480
https://jira.atlassian.com/browse/CONF-10662
https://jira.atlassian.com/browse/CONF-18970
https://jira.atlassian.com/browse/CONF-9857
https://jira.atlassian.com/browse/CONF-16732
https://jira.atlassian.com/browse/CONF-18970
如果我听到人们说的是正确的 - 数据库事务中有两个或更多的线程正在做同样的事情。这些线程直到向数据库提交时才能看到对方。但由于某种原因,其他线程不会停止并执行第二次提交 - 因此您最终会得到2个或更多版本的相同页面编辑。
我该如何解决这个问题?有什么可以做的,以防止重复的版本被提交?
我在问stackoverflow社区的内容管理系统专家请求提供建议。
这个问题似乎是题外话题,因为它是关于Confluence。 – bmargulies