Я хотел бы убедиться, что поля в двух независимых сторонних базах данных, размещенных в разных местах, синхронизированы.У меня есть следующий общий код узла / экспресс-кода 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?Как я могу это реализовать?