我希望确保两个独立的第三方数据库中的字段在不同的位置进行同步。我有以下通用的node / express js代码:
router.post ('url', function(req,res,next) {
third_party_api_1.set_a (req.body.param, function(err, a) {
third_party_api_2.set_b (req.body.param, function(err, b) {
res.end()
})
})
})
如果用户发布(param = 1),我期望(a = b = 1)。如果他们发布(param = 2),我期望(a = b = 2)。如果两个用户同时发布(param = 1)和(param = 2),第三方数据库中的a和b总是相等吗?我知道它们可以根据时间而为1或2,但我想确保它要么是(a = b = 1),要么是(a = b = 2),而不是(a = 1,b = 2)或(a = 2,b = 1)。
换句话说, set_a 和 set_b 是否“原子”?
谢谢!
编辑#1: "a" 是第三方数据库中的单个值,"b" 是另一个第三方数据库中的单个值,我希望用户发布单个值,我的代码将两个a和b替换为该用户值。
编辑#2: 我无法直接控制第三方数据库,我只能调用公共API。也许我需要在api调用周围加上互斥体?我该如何实现?