fix(test): embedded Redis 종료 누수를 방지한다

This commit is contained in:
2026-10-02 20:09:04 +09:00
parent 124a615a85
commit 5a09c85135
@@ -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
}
} }