From 3d37760ce3fa11ce35cfbab9ae344931ce5801f4 Mon Sep 17 00:00:00 2001 From: xb205 <62425964+devxb@users.noreply.github.com> Date: Sat, 8 Feb 2025 12:12:10 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=A6=AC=EB=B7=B0=EA=B0=80=20completed?= =?UTF-8?q?=EA=B0=80=20=EB=90=98=EC=97=88=EC=9D=84=EB=95=8C=20=EB=B0=98?= =?UTF-8?q?=ED=99=98=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95=20(#2?= =?UTF-8?q?2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 리뷰가 completed가 되었을때 반환하도록 수정 * feat: delay조건을 추가한다 --- .../kotlin/me/misik/api/app/GetReviewFacade.kt | 14 ++++++++++++-- .../kotlin/me/misik/api/domain/ReviewService.kt | 3 --- 2 files changed, 12 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..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 @@ -16,8 +17,17 @@ 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) { + delay(500) + 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\"") }