From f484dcbacc92b4d2681d76217f0c74b9746a3818 Mon Sep 17 00:00:00 2001 From: devxb Date: Sat, 8 Feb 2025 12:04:28 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EB=A6=AC=EB=B7=B0=EA=B0=80=20compl?= =?UTF-8?q?eted=EA=B0=80=20=EB=90=98=EC=97=88=EC=9D=84=EB=95=8C=20?= =?UTF-8?q?=EB=B0=98=ED=99=98=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/me/misik/api/app/GetReviewFacade.kt | 12 ++++++++++-- src/main/kotlin/me/misik/api/domain/ReviewService.kt | 3 --- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/me/misik/api/app/GetReviewFacade.kt b/src/main/kotlin/me/misik/api/app/GetReviewFacade.kt index 47c7812..a0d1532 100644 --- a/src/main/kotlin/me/misik/api/app/GetReviewFacade.kt +++ b/src/main/kotlin/me/misik/api/app/GetReviewFacade.kt @@ -16,8 +16,16 @@ class GetReviewFacade( fun getReview(id: Long): Review { return runBlocking(GracefulShutdownDispatcher.dispatcher) { withTimeout(60.seconds) { - reviewService.getReview(id) - }.get() + var result: Review? = null + while (result == null) { + reviewService.getById(id) + .takeIf { it.isCompleted } + .let { + result = it + } + } + return@withTimeout result!! + } } } } diff --git a/src/main/kotlin/me/misik/api/domain/ReviewService.kt b/src/main/kotlin/me/misik/api/domain/ReviewService.kt index 41517d8..392809b 100644 --- a/src/main/kotlin/me/misik/api/domain/ReviewService.kt +++ b/src/main/kotlin/me/misik/api/domain/ReviewService.kt @@ -46,7 +46,4 @@ class ReviewService( fun getById(id: Long): Review = reviewRepository.findByIdOrNull(id) ?: throw IllegalArgumentException("Cannot find review by id \"$id\"") - - fun getReview(id: Long) = reviewRepository.findById(id) - ?: throw IllegalArgumentException("Cannot find review by id \"$id\"") } From 23acb1744c0049a0649311116f6a084fed375b95 Mon Sep 17 00:00:00 2001 From: devxb Date: Sat, 8 Feb 2025 12:06:53 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20delay=EC=A1=B0=EA=B1=B4=EC=9D=84=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/me/misik/api/app/GetReviewFacade.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/kotlin/me/misik/api/app/GetReviewFacade.kt b/src/main/kotlin/me/misik/api/app/GetReviewFacade.kt index a0d1532..d9bdcb8 100644 --- a/src/main/kotlin/me/misik/api/app/GetReviewFacade.kt +++ b/src/main/kotlin/me/misik/api/app/GetReviewFacade.kt @@ -1,5 +1,6 @@ package me.misik.api.app +import kotlinx.coroutines.delay import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withTimeout import me.misik.api.core.GracefulShutdownDispatcher @@ -18,6 +19,7 @@ class GetReviewFacade( withTimeout(60.seconds) { var result: Review? = null while (result == null) { + delay(500) reviewService.getById(id) .takeIf { it.isCompleted } .let {