在更新这个庞大的集合时,下面的迁移代码似乎被困住了。
@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可以使用更快?
注意:
@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}到
发布于 2021-05-11 08:33:46
您能提供一些更多的信息吗,例如您正在使用的mongock版本、日志跟踪(您显示的诊断功能不够)、mongock配置等等?
另一方面,您应该直接使用MongockTempalte
而不是MongoTemplate
。它是相同的API,您不会错过任何东西。实际上,直接使用MongoTemplate应该会引发异常。
有关更多信息,请查看蒙哥克文献
https://stackoverflow.com/questions/67482893
复制相似问题