【问题标题】:DB migration on multiple Heroku Dynos多个 Heroku Dynos 上的数据库迁移
【发布时间】:2020-10-02 12:58:00
【问题描述】:

我有一个用于Meteor 应用程序的简单迁移脚本。在启动时,它会运行一些代码来修改Collection 中的所有Documents。我在 Heroku 上运行了 5 个测功机,并在日志中注意到我的 console.logs 被称为 5x(每个测功机 1 个)。

这是否意味着我的DB 也更新了 5 倍?

谢谢!

【问题讨论】:

    标签: node.js mongodb heroku meteor


    【解决方案1】:

    您应该使用https://atmospherejs.com/percolate/migrations 之类的东西来确保一次只有一个进程可以获得数据库锁。

    这样只有一个节点会运行迁移代码。

    【讨论】:

    • 我用那个包玩了一段时间。我认为这对于我需要知道的内容来说太过分了,因为我不一定关心为这个特定版本更改进行版本控制。但是每个 web worker 真的会更新单个数据库吗?
    • 您需要的是锁定。因此,如果您不想使用该包,您可以使用 Mongo 原始集合和findOneAndUpdate() 实现自己的简单锁定以防止出现竞争条件。这样,只有一个 Web Worker 会执行迁移。
    猜你喜欢
    • 2018-03-07
    • 1970-01-01
    • 2019-04-16
    • 2017-09-01
    • 2015-05-16
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多