PostgreSQL并发事务

问题描述 投票:0回答:1

我有一个正在处理的项目,该项目使用后台线程将数据从其他来源插入数据库。现在,我偶尔遇到的问题之一是,一旦用户与数据库交互,就会触发由于“由于并发更新而无法序列化访问”导致的错误。

由于我的数据源生成了大量数据,因此我的后台线程始终忙于保持并插入数据,并且我编写了该算法,以便在行被锁定时基本上可以“重试”,因此我偶尔会遇到这样的错误:发生在后台线程上。

真正的问题是,我的用户基本上是通过一个在各个层次上具有ORM映射的网站与数据库进行交互的,似乎用户偶尔可能会修改由后台线程处理的同一条记录。

关于我可以做些什么使我不面对序列化错误的建议?

postgresql concurrency orm
1个回答
0
投票

大概已经向您的用户提供了数据库中的一些数据,并且基于他们所看到的决定更改了某些内容。如果他们查看的数据已过时,您为什么希望基于过时信息的决定仍然有效?通常,他们需要查看最新数据并决定是否仍要进行更改。

如果做出这些决定是“容易”的,那么为什么您首先要由人来做出决定?如果他们很难制造,除了让人们重新制造它们之外,还有什么选择?对此可能有特定的答案,但是我看不到任何一般性的答案,并且您还没有给我们提供任何特定的详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.