Как обрабатывать исключения ReadTimOut при чтении данных с сервера? - PullRequest
0 голосов
/ 17 октября 2011

Я загружаю длинные файлы с сервера Amazon S3. Я записываю исключения в мою серверную БД, если таковая имеется. Я вижу большое количество исключений: java.net.SocketTimeoutException: тайм-аут чтения

Я думал, что это происходит, когда пользователь находится в плохом / плохом интернет-покрытии, но мне интересно, если пользователь находится в плохой зоне покрытия, тогда почему это входит в систему на сервере? (Как это также делается через Интернет). Любое тело знает причину?

Строка, в которой это исключение возникает каждый раз, равна

while ((numRead = inputStream.read (mBuffer))> = 0)

Как я могу справиться с этим исключением? Я думаю, что когда возникает исключение, я должен снова попытаться, например, 5 раз, позвонив

inputStream.read (mBuffer);

Правильно ли я думаю?

После исключения тайм-аута считывания входной поток будет допустимым для повторного использования?

Будет вызывать inputStream.read (mBuffer); будет резюме из последнего прочитанного потока?

Спасибо

1 Ответ

1 голос
/ 18 октября 2011

Входной поток остается действительным, а буфер не содержит данных после истечения времени ожидания.Если вы получаете много тайм-аутов, я бы начал с увеличения периода ожидания.Удвой это.Для начала вам потребуется не менее 30-60 секунд, поскольку вам нужны все данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...