问题描述
我知道以前有人问过这个问题,但就我而言,它看起来不适合。
我们的 postgres 数据库正在复制运行(这可能会导致问题)。这是它的代码:
// the following code is wrapped in connection.transaction(async() => { .. })
const user = await models.user.findOne({
include: [{ model: models.settings,as: 'settings' }],where: { /* some conditions */ }
});
const { settings } = user;
if (!settings) {
const defaults = getDefaults();
const created = await models.settings.create(defaults);
return created;
}
return settings;
我目前正面临同一用户的多个设置条目,这不应该发生。我坚信这是此代码的竞争条件问题。至少 createdAt 时间戳显示重复项的相同值。
在这里使用表/行锁有意义吗?实现会是什么样子?我无法通过 here 中的文档。 level
有什么作用?没有描述。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)