首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mongodb -在迁移过程中使用>100000个文档更新集合

Mongodb -在迁移过程中使用>100000个文档更新集合
EN

Stack Overflow用户
提问于 2021-05-11 08:15:47
回答 1查看 505关注 0票数 0

在更新这个庞大的集合时,下面的迁移代码似乎被困住了。

代码语言:javascript
运行
复制
@ChangeSet(order = "010", id = "add_tenant_to_product", author = "pn")
fun addTenantToProduct(mongoTemplate: MongoTemplate) {
    log.info("Adding tenants to products")
    val query = Query()
    val update = Update()
    update.set("tenants", arrayOf("shared"))

    mongoTemplate.updateMulti(query, update, Product::class.java)
}

@ChangeSet(order = "011", id = "add_tenant_to_product_version", author = "pn")
fun addTenantToProductVersion(mongoTemplate: MongoTemplate) {
    log.info("Adding tenants to product-version")
    val query = Query()
    val update = Update()
    ...

应用程序日志的最后几行表示正在调用的变更集,但随后的一行没有被调用。

2021-05-11 08:00:29.385信息产品-服务, main c.a.a.mongock.changelog.Migration :向产品添加租户 2021-05-11 08:00:29.576信息产品-服务, 主org.mongodb.driver.connection :打开连接

因此Spring执行器健康探测失败,容器继续重新启动。是否有更好的API可以使用更快?

注意:

  1. 使用版本:'com.github.cloudyrock:mongock:1.12‘
  2. 下面是配置
代码语言:javascript
运行
复制
@Profile("!tenant")
@Configuration
class MongockConfig : AbstractMongoConfiguration() {

    @Value("\${spring.data.mongodb.uri}")
    private lateinit var uri: String

    @Value("\${spring.data.mongodb.database}")
    private lateinit var database: String

    override fun mongoClient(): MongoClient {
        return MongoClient(MongoClientURI(uri))
    }

    override fun getDatabaseName(): String {
        return database
    }

    @Bean
    fun mongock(): Mongock {
        return MongockBuilder(mongoClient(), databaseName, "com.somepackage.mongock.changelog")
            .setMongoTemplate(mongoTemplate())
            .setLockQuickConfig()
            .build()
    }
}

这是原木

2021-05-10 10:59:33.406信息产品-服务,,,1-主org.mongodb.driver.connection :打开连接connectionId{localValue:16,serverValue:26359638}到主c.github.cloudyrock.mongock.LockChecker :蒙古蜜蜂试图获得锁2021-05- 10 :59:33.574信息产品-服务,,1--主c.github.cloudyrock.mongock.LockChecker :锁是由其他进程采取的,直到:5月10日11:01:03格林尼治时间2021-05- 10 :59:33.574信息产品-服务,主c.github.cloudyrock.mongock.LockChecker :蒙哥克要睡觉等锁: 90265 ms(1分钟) 2021-05-10 11:01:03.839信息产品-服务,,1-主要c.github.cloudyrock.mongock.LockChecker :蒙古蜜蜂试图获得锁2021-05-1011:01:03.844信息产品-服务,,主c.github.cloudyrock.mongock.LockChecker :蒙古蜜蜂获得锁,直到:5月10日11:04:03格林尼治时间2021-05-10 11:01:03.844信息产品-服务,,1-主com.github.cloudyrock.mongock.Mongock :蒙古启动数据迁移序列.2021-05-10 11:01:03.982信息产品-服务,,,1--主org.reflections.Reflections :反射需要60 ms扫描1个urls,生成2个键和3个值2021-05-10 :01:04.038信息产品-服务,主com.github.cloudyrock.mongock.ChangeEntry@7abd0e71 :2021-05-1011:01:04.046信息产品-服务,,1--主要com.github.cloudyrock.mongock.Mongock : com.github.cloudyrock.mongock.ChangeEntry@6635f36通行证2021-05-1011:01:04.047信息产品-服务,主com.github.cloudyrock.mongock.ChangeEntry@61352a80 :2021-05-1011:01:04.052信息产品-服务,,1--主要com.github.cloudyrock.mongock.Mongock : com.github.cloudyrock.mongock.ChangeEntry@7576ed14通行证2021-05-1011:01:04.054信息产品-服务,主com.github.cloudyrock.mongock.ChangeEntry@b0302179 :2021-05-1011:01:04.068信息产品-服务,,1--主要com.github.cloudyrock.mongock.Mongock : com.github.cloudyrock.mongock.ChangeEntry@e6caade0通行证2021-05-1011:01:04.071信息产品-服务,主com.github.cloudyrock.mongock.ChangeEntry@2688129a :2021-05-1011:01:04.073信息产品-服务,,1--主要com.github.cloudyrock.mongock.Mongock : com.github.cloudyrock.mongock.ChangeEntry@e46af677通行证2021-05-1011:01:04.075信息产品-服务,主要com.github.cloudyrock.mongock.ChangeEntry@d788b92f com.github.cloudyrock.mongock.Mongock :通过2021-05-1011:01:04.077信息产品-服务,,1--主要c.a.a.mongock.changelog.Migration :添加组织到问题2021-05-10 :01:04.158信息产品-服务,主dummy-clusterr-39649.servers.mongodirector.com:27017 :打开连接connectionId{localValue:17,serverValue:26359725}到

EN

Stack Overflow用户

发布于 2021-05-11 08:33:46

您能提供一些更多的信息吗,例如您正在使用的mongock版本、日志跟踪(您显示的诊断功能不够)、mongock配置等等?

另一方面,您应该直接使用MongockTempalte而不是MongoTemplate。它是相同的API,您不会错过任何东西。实际上,直接使用MongoTemplate应该会引发异常。

有关更多信息,请查看蒙哥克文献

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67482893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档