Spring Data MongoDB
Перейти к навигации
Перейти к поиску
Зависимости: build.gradle
compile "org.mongodb:mongodb-driver-sync:4.4.2"
testImplementation 'org.mongodb:mongodb-driver-core:4.4.2'
testImplementation 'org.mongodb:mongodb-driver-legacy:4.4.2'
testImplementation 'org.mongodb:mongodb-driver-sync:4.4.2'
Тест - пробуем изменить ttlMonitorSleepSecs (но не работает):
fun checkTtl(): Unit = runBlocking {
val mongoTxId = UUID.randomUUID().toString()
transactionRepository.save(
Transaction(
id = mongoTxId,
dateTime = Instant.now(),
)
)
val adminDb = mongoTemplate.mongoDatabaseFactory.getMongoDatabase("admin")
val cmdTtlMonOff = BsonDocument.parse("{setParameter: 1, ttlMonitorEnabled: false}")
println(adminDb.runCommand(cmdTtlMonOff).toJson())
// db.adminCommand({getParameter:1, ttlMonitorSleepSecs: 1});
val cmdGet = BsonDocument.parse("{getParameter:1, ttlMonitorSleepSecs: 1}")
println(adminDb.runCommand(cmdGet).toJson())
// db.adminCommand({setParameter:1, ttlMonitorSleepSecs: 1})
val cmd = BsonDocument.parse("{setParameter:1, ttlMonitorSleepSecs: 70}")
println(adminDb.runCommand(cmd).toJson())
println(adminDb.runCommand(cmdGet).toJson())
val cmdTtlMonOn = BsonDocument.parse("{setParameter: 1, ttlMonitorEnabled: true}")
println(adminDb.runCommand(cmdTtlMonOn).toJson())
println(adminDb.runCommand(cmdGet).toJson())
await()
.atMost(65L, TimeUnit.SECONDS)
.pollDelay(500L, TimeUnit.MILLISECONDS)
.until {
runBlocking {
!transactionRepository.existsById(mongoTxId)
}
}
assertNull(transactionRepository.findById(mongoTxId))
}