【发布时间】:2021-01-26 22:41:55
【问题描述】:
我目前有多条消息在同一秒内到达。它们具有以下属性:
- 父密钥
- 说明
- 金额
逻辑如下:
-
在 key = ParentKey 的地方查找父项
a) 如果 parent 不存在,则插入带有 key = ParentKey 的 parent
-
使用(id、parent_key、description、amount)插入孩子
现在的问题是,在并行处理中,我要么得到隔离级别 SERIALIZE 的异常(这是正确的吗?),要么得到父级的 UniqueConstraintViolation。
如果我对 key 没有唯一约束而只有一个序列号,我最终会得到多个条目。
有什么办法可以防止这种情况发生吗?或者任何重试机制?我只想为这个 id 插入一个。
【问题讨论】:
-
很抱歉没有提供帮助,伙计:
-
@aran 如果我们始终与一个工人在一起,您的解决方案至少会奏效。我猜总比没有好。不要以为我会得到另一个答案,所以请随时发布
-
如果使用读写锁,可能会解决问题。这意味着只有一个人会写,其他人可以读。