fix(test): embedded Redis 종료 누수를 방지한다
This commit is contained in:
@@ -18,9 +18,7 @@ class EmbeddedRedisInitializer : ApplicationContextInitializer<ConfigurableAppli
|
|||||||
}
|
}
|
||||||
|
|
||||||
private object EmbeddedRedisHolder {
|
private object EmbeddedRedisHolder {
|
||||||
private var redisServer: RedisServer? = null
|
|
||||||
private var port: Int? = null
|
private var port: Int? = null
|
||||||
private var shutdownHookRegistered = false
|
|
||||||
|
|
||||||
@Synchronized
|
@Synchronized
|
||||||
fun start(): Int {
|
fun start(): Int {
|
||||||
@@ -29,8 +27,9 @@ private object EmbeddedRedisHolder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val selectedPort = PortProvider.newEphemeralPortProvider().get()
|
val selectedPort = PortProvider.newEphemeralPortProvider().get()
|
||||||
redisServer = RedisServer.newRedisServer()
|
RedisServer.newRedisServer()
|
||||||
.port(selectedPort)
|
.port(selectedPort)
|
||||||
|
.onShutdownForceStop(true)
|
||||||
.setting("bind 127.0.0.1")
|
.setting("bind 127.0.0.1")
|
||||||
.setting("daemonize no")
|
.setting("daemonize no")
|
||||||
.setting("appendonly no")
|
.setting("appendonly no")
|
||||||
@@ -38,22 +37,6 @@ private object EmbeddedRedisHolder {
|
|||||||
.also { it.start() }
|
.also { it.start() }
|
||||||
port = selectedPort
|
port = selectedPort
|
||||||
|
|
||||||
if (!shutdownHookRegistered) {
|
|
||||||
Runtime.getRuntime().addShutdownHook(
|
|
||||||
Thread {
|
|
||||||
stop()
|
|
||||||
}
|
|
||||||
)
|
|
||||||
shutdownHookRegistered = true
|
|
||||||
}
|
|
||||||
|
|
||||||
return selectedPort
|
return selectedPort
|
||||||
}
|
}
|
||||||
|
|
||||||
@Synchronized
|
|
||||||
fun stop() {
|
|
||||||
redisServer?.stop()
|
|
||||||
redisServer = null
|
|
||||||
port = null
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user