가 처음에 나는이 구현이 긴 것이라고 생각하고 간단하게 만들 것입니다 내가 그걸 그리워 도구가 있음. 은 결국 나는 재귀 적으로 구현하는 간단 파악
def autorecoveredRequest(
hosts: List[String],
hostToRequest: (String) => HttpRequest)(
implicit ec: ExecutionContext): Future[HttpResponse] =
Random.shuffle(hosts) match {
case host :: rest =>
Http().singleRequest(hostToRequest(host)).recoverWith {
case e =>
log.warn(s"Request to host ${host} failed")
autorecoveredRequest(rest, hostToRequest)
}
case Nil =>
log.error("No more hosts to recover request")
Future.failed(new Exception("No more hosts to recover request"))
}
여기에 누락 될 수 있습니다 것이 내 경우에는 내가 다른 요청을 의미 문제
아니었다 호스트 당 요청 재 시도가 유일한 것은 실패한 경우 * 다른 URL로 * – mermer