#scala #playframework #akka-http
#scala #игровая фреймворк #akka-http
Вопрос:
У меня есть приложение Scala Play (2.6.25). Основываясь на приведенных здесь указаниях, я пытаюсь установить время ожидания чтения на 3 минуты, используя следующую конфигурацию (application.conf):
play {
server {
akka {
bindTimeout = 180 seconds
requestTimeout = infinite
}
}
}
play {
server {
http {
idleTimeout = 180 seconds
}
}
}
Но соединение клиента прерывается сервером примерно через 1 минуту 16 секунд.
Запрос:
time curl --location --request POST 'http://localhost:9000/...'
--header 'Content-Type: application/json'
--header 'Cookie: JSESSIONID=78F3E25401A2631ABBE1006201AC1103'
--max-time 180
--verbose
--data-raw '{
...
}'
Ответ:
Note: Unnecessary use of -X or --request, POST is already inferred.
* Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 9000 (#0)
> POST /... HTTP/1.1
> Host: localhost:9000
> User-Agent: curl/7.54.0
> Accept: */*
> Content-Type: application/json
> Cookie: JSESSIONID=78F3E25401A2631ABBE1006201AC1103
> Content-Length: 1300
> Expect: 100-continue
>
< HTTP/1.1 100 Continue
< Date: Wed, 07 Oct 2020 18:24:32 GMT
* We are completely uploaded and fine
* Recv failure: Connection reset by peer
* stopped the pause stream!
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer
curl --location --request POST --header 'Content-Type: application/json' 0.01s user 0.01s system 0% cpu 1:16.11 total
Фильтры отключены ( play.filters.enabled = []
).
Оцените любые указания на то, что я мог делать неправильно.
Ответ №1:
Для потомков указание конфигурации в качестве системного свойства помогло решить проблему. Вот так:
-Dplay.server.http.idleTimeout=180s
Источник:
https://github.com/playframework/playframework/issues/8286#issuecomment-372635585