Я использую HTTP-сервер Джерси, а также клиент Джерси для запросов REST.Джерси длинный запрос времени ожидания
Клиент отправляет файл на сервер, сервер обрабатывает файл и возвращает ответ клиенту. Моя проблема в том, что обработка на сервере может занять несколько минут, может быть, даже 1/2 часа.
Я хочу, чтобы клиент знал, не получилось или не удалось выполнить запрос. Однако я установил свой readTimeout на клиенте до 60-х, потому что я читал, что это плохая практика, чтобы установить его на 0. В результате я иногда получаю на клиенте SocketTimeoutException
.
Безопасно ли отключить readTimeout (установить его в 0)? В ConnectTimeout все равно будет 10 секунд.
В качестве альтернативы можно ли использовать протокол TCP в режиме реального времени? Как я понял, это только посылает эти пакеты в больших интервалах из-за нескольких минут (в зависимости от ОС).
Есть ли что-нибудь еще, что я мог бы сделать вместо того, чтобы немедленно возвращаться с токеном, а затем опросить сервер с помощью токена, если обработка прошла успешно? Я кое-что прочитал о пакетах пульса. Можно ли это использовать?
И как я узнаю, когда сервер будет готов? Это потребует повторного опроса. – Bantak