最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

是JavaScript的回调原子

运维笔记admin18浏览0评论

是JavaScript的回调原子

是JavaScript的回调原子

我想,以确保字段在不同的地方举办了两次独立的第三方数据库的同步。我有以下的通用节点/快递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)I期望(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_aset_b是“原子”?

谢谢!

编辑#1:“a”是在第三方数据库中的单个值,“B”是在另一个第三方数据库另一个单个值,我想有用户上传的单个值和我的代码取代了A和B该用户价值。

编辑#2:我在第三方数据库没有直接的控制,我只能叫一个公共的API。也许我需要周围的API调用互斥?我如何能实现呢?

回答如下:

你似乎在问两个分布式系统不是原子之间的“一致性”。

你所要求还真多是建筑问题,而不是什么特别的JavaScript。如果要针对两个不同的数据存储拨打电话,你需要一些手段来保证这两个端点是保持一致性。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论