scala retry 참조 코드
import util._
object RetryUtils {
@annotation.tailrec
def retry[T](n: Int)(fn: => T): T = {
Try { fn } match {
case Success(x) => x
case _ if n > 1 => retry(n - 1)(fn)
case Failure(e) => throw e
}
}
}
예제 코드
val retryResult = retry(3) {
if (validateObject(esClient)) {
esClient
} else {
null
}
}
'scala' 카테고리의 다른 글
trait의 내부 필드 접근하기 - 컴패년 오브젝트 (0) | 2018.02.02 |
---|---|
[scala] sksamuel 라이브러리에서 동기 코드로 개발 (await.result) 예제 (0) | 2018.01.30 |
Spark와 Kafka 연동 (1) | 2018.01.20 |
[scala] 배열에서 앞 또는 뒤 엘리먼트 제거하기 - slice (0) | 2018.01.17 |
스칼라 빈 값 정의 (0) | 2018.01.11 |