Mongodb-使用>;更新集合;迁移中的10万份文件

Mongodb-使用>;更新集合;迁移中的10万份文件,mongodb,spring-boot,mongock,Mongodb,Spring Boot,Mongock,在更新这个庞大的集合时,下面的迁移代码似乎被卡住了 @ChangeSet(order = "010", id = "add_tenant_to_product", author = "pn") fun addTenantToProduct(mongoTemplate: MongoTemplate) { log.info("Adding tenants to products") val query =

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

@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信息[产品服务,,,]1---[
main]c.a.a.mongock.changelog.Migration:将租户添加到 产品

2021-05-11 08:00:29.576信息[产品服务,,,]1---[
main]org.mongodb.driver.connection:打开的连接

弹簧执行器健康探头因此发生故障,容器继续重新启动。是否有更好的API可以使用,而且速度更快

注:

  • 使用的版本:“com.github.cloudyrock:mongock:1.12”
  • 下面是配置
  • @Profile(“!租户”)
    @配置
    类MongockConfig:AbstractMongoConfiguration(){
    @值(\${spring.data.mongodb.uri})
    私有lateinit变量uri:字符串
    @值(\${spring.data.mongodb.database}”)
    私有lateinit var数据库:字符串
    覆盖mongoClient():mongoClient{
    返回MongoClient(MongoClient(uri))
    }
    重写getDatabaseName():字符串{
    返回数据库
    }
    @豆子
    mongock():mongock{
    返回MongockBuilder(mongoClient(),databaseName,“com.somepackage.mongock.changelog”)
    .setMongoTemplate(mongoTemplate())
    .setLockQuickConfig()
    .build()
    }
    }
    
    这是日志


    2021-05-10 10:59:33.406信息[product service,,,,]1---[main]org.mongodb.driver.connection:打开了到dummy-clusterr-39649.servers.mongodirector.com:27017的连接[connectionId{localValue:16,serverValue:26359638}] 2021-05-10 10:59:33.525信息[产品服务,,,,]1---[main]c.github.cloudyrock.mongock.LockChecker:Mongbee试图获得锁 2021-05-10 10:59:33.574信息[产品服务,,,,]1---[main]c.github.cloudyrock.mongock.LockChecker:锁定由其他进程执行,直到:周一-五月10日11:01:03格林威治标准时间2021 2021-05-10 10:59:33.574信息[产品服务,,,,]1---[main]c.github.cloudyrock.mongock.LockChecker:mongock将进入睡眠状态以等待锁:90265毫秒(1分钟) 2021-05-10 11:01:03.839信息[产品服务,,,,]1---[main]c.github.cloudyrock.mongock.LockChecker:Mongbee正在尝试获取锁 2021-05-10 11:01:03.844信息[产品服务,,,,]1---[main]c.github.cloudyrock.mongock.LockChecker:Mongbee获得锁的时间为:2021年5月10日星期一11:04:03 GMT 2021-05-10 11:01:03.844信息[产品服务,,,]1---[main]com.github.cloudyrock.mongock.mongock:mongock正在启动数据迁移序列。。 2021-05-10 11:01:03.982信息[product service,,,]1---[main]org.reflections.reflections:反射花了60毫秒扫描1个URL,生成2个键和3个值 2021-05-10 11:01:04.038信息[产品服务,,,]1---[main]com.github.cloudyrock.mongock.mongock:com.github.cloudyrock.mongock。ChangeEntry@7abd0e71越过 2021-05-10 11:01:04.046信息[产品服务,,,]1---[main]com.github.cloudyrock.mongock.mongock:com.github.cloudyrock.mongock。ChangeEntry@6635f36越过 2021-05-10 11:01:04.047信息[产品服务,,,]1---[main]com.github.cloudyrock.mongock.mongock:com.github.cloudyrock.mongock。ChangeEntry@61352a80越过 2021-05-10 11:01:04.052信息[产品服务,,,]1---[main]com.github.cloudyrock.mongock.mongock:com.github.cloudyrock.mongock。ChangeEntry@7576ed14越过 2021-05-10 11:01:04.054信息[产品服务,,,]1---[main]com.github.cloudyrock.mongock.mongock:com.github.cloudyrock.mongock。ChangeEntry@b0302179越过 2021-05-10 11:01:04.068信息[产品服务,,,]1---[main]com.github.cloudyrock.mongock.mongock:com.github.cloudyrock.mongock。ChangeEntry@e6caade0越过 2021-05-10 11:01:04.071信息[产品服务,,,]1---[main]com.github.cloudyrock.mongock.mongock:com.github.cloudyrock.mongock。ChangeEntry@2688129a越过 2021-05-10 11:01:04.073信息[产品服务,,,]1---[main]com.github.cloudyrock.mongock.mongock:com.github.cloudyrock.mongock。ChangeEntry@e46af677越过 2021-05-10 11:01:04.075信息[产品服务,,,]1---[main]com.github.cloudyrock.mongock.mongock:com.github.cloudyrock.mongock。ChangeEntry@d788b92f越过 2021-05-10 11:01:04.077信息[product service,,,]1---[main]c.a.a.mongock.changelog.Migration:将组织添加到问题中
    2021-05-10 11:01:04.158信息[product service,,,,,]1---[main]org.mongodb.driver.connection:Opened连接[connectionId{localValue:17,serverValue:26359725}]到dummy-clusterr-39649.servers.mongodirector.com:27017

    您能提供更多信息吗,比如您正在使用的mongock版本,日志跟踪(您显示的内容不足以进行诊断)、mongock配置等

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


    有关更多信息,请检查添加了更多详细信息。我在日志中没有看到任何错误。但重新打开连接很奇怪。您确定它与MongoDB本身或spring无关。另一方面,您使用的是非常旧的版本。最后一个版本是4.3.8,ewe正在开发版本5,以提供非常好的合作ol功能。由于我是Mongodb新手,所以不确定出了什么问题。迁移在我的本地机器上运行良好,它几乎没有记录。因此我怀疑在测试环境中部署时会有大量记录。我建议