提问人:Tesla 提问时间:11/17/2023 最后编辑:Tesla 更新时间:11/17/2023 访问量:23
REST API + 数据库调用争用条件
REST API + DB call race condition
问:
因此,我在 API 路由中具有以下逻辑:
- 调用对象 = db.getObjectInfo()
- 如果 object.isAvailable === TRUE),则 db.updateObjectInfo(..将 isAvailable 设置为 FALSE..)并执行一些操作。操作完成后,db.updateObjectInfo(..set isAvailable 设置为 TRUE..)
- 如果 object.isAvailable === FALSE),则返回并不执行任何操作
我如何确保如果非常快速地为此 API 发出两个请求,则在第一个请求可以更新并将 isAvailable 设置为 FALSE 之前,不存在第二个请求执行 object = db.getObjectInfo() 的竞争条件。导致两个请求都执行该操作?
这是在节点快速路由和 postgres DB 上。
答: 暂无答案
评论