2016-06-22 3 views
2

У меня есть приложение Scala Play, которое использует Akka и запрашивает сервер REST. Запрос может занять много времени, и я получаю таймауты:Scala akka-http client Ошибка времени ожидания

«Сервер не смог своевременно ответить на ваш запрос. Повторите попытку через некоторое время!»

Я попытался использовать Play WSClient и клиент kaka-http и получить ту же ошибку, и я установил каждый тайм-аут, который я могу найти.

WSClient впрыскивается в актере, и я называю это это было в моем Актере

val resp = ws.url("myurl").withRequestTimeout(Duration.Inf).get() 
resp pipeTo self 

И я попробовал:

Http().singleRequest(HttpRequest(uri = "myurl")) 

А потом трубка это самостоятельно, но все же тайм-аут.

В application.conf я поставил:

play.ws.timeout.connection = 3600 s 
play.ws.timeout.request = 3600 s 
play.ws.timeout.idle = 3600 s 
akka.http.server.idle-timeout = 3600 s 
akka.http.http-connection-pool.idle-timeout = 3600 s 
akka.http.http-connection-pool.client.idle-timeout = 3600 s 
akka.http.server.request-timeout = 3600 s 
akka.http.client.idle-timeout = 3600 s 
akka.http.client.connecting-timeout = 3600 s 

Я не уверен, что еще я могу сделать. Я даже попробовал

Await.resutl(rest, Duration.Inf) 

Но это не поможет. Если у кого-нибудь есть идея, что я могу попробовать, это будет оценено по достоинству. Я использую Akka 2.4.4 и Play 2.5.3.

ответ

2

Проблема была на стороне сервера, которая также является приложением Akka. Я установил тайм-аут подключения к серверу и устранил проблему.

Смежные вопросы