Guest User

Untitled

a guest
Nov 20th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.56 KB | None | 0 0
  1. def autorecoveredRequest(
  2. hosts: List[String],
  3. hostToRequest: (String) => HttpRequest)(
  4. implicit ec: ExecutionContext): Future[HttpResponse] =
  5. Random.shuffle(hosts) match {
  6. case host :: rest =>
  7. Http().singleRequest(hostToRequest(host)).recoverWith {
  8. case e =>
  9. log.warn(s"Request to host ${host} failed")
  10. autorecoveredRequest(rest, hostToRequest)
  11. }
  12. case Nil =>
  13. log.error("No more hosts to recover request")
  14. Future.failed(new Exception("No more hosts to recover request"))
  15. }
Add Comment
Please, Sign In to add comment