"users"
带有
"state"
列,即
jsonb
我有
倍数
API将获取当前状态(
SELECT
updateState
)然后更新数据库(
UPDATE
)结果如何。
可能是这样的:
const updateHandler = async (id) =>
const { state } = await db.one(
`SELECT * FROM users WHERE id = $<id> LIMIT 1`,
{ id });
const nextState = updateState(state);
await db.query(
`UPDATE users SET state = $<nextState> WHERE id = $<id>`,
{ id, nextState });
});
因为我有多个服务器,所以我想确保当状态更新时,它是调用
更新不动产
上
state
已经存在的值。如果其他服务器已经在执行更新,则每个服务器都应该排队(或者抛出错误)。
这样做的最佳策略是什么?