Оберточная попытка поймать что-то из интернета, через некоторое время

1

Итак, у меня есть инструкция try-catch в java-программе, которая извлекает данные из Интернета. Как обрабатывать таймауты? Могу ли я просто обернуть захват try catch while и после некоторого количества неудачных итераций попросить пользователя попробовать позже?

Теги:

1 ответ

2

Как мне обрабатывать таймауты? Могу ли я просто обернуть захват try catch while и после некоторого количества неудачных итераций попросить пользователя попробовать позже?

Я не думаю, что это была бы хорошая идея. ИМО, самое лучшее, что нужно сделать, это выбрать тайм-аут, который соответствует времени, которое, по вашему мнению, должно ждать пользователя, а не использовать цикл. Как отмечает @BalusC, любой достойный API-интерфейс Http даст вам возможность установить таймаут, прежде чем вы сделаете запрос. Используйте его.

Проблема с использованием цикла заключается в том, что вы потенциально добавляете нагрузку на уже перегруженный сервер. Предположим, что реальной причиной таймаута является то, что сервер пытается обрабатывать слишком много запросов параллельно, и каждый запрос занимает много времени. Если вы (клиент) тайм-аут запроса, а затем сразу же повторите его, вы, вероятно, просто добавляете дополнительную нагрузку... усугубляя ситуацию.

Скорее всего, некоторые пользователи будут нажимать кнопку повтора. Вам не нужно делать молот для них.

  • 0
    Действительно, каждый битовый приличный HTTP-клиент имеет настройку тайм-аута, даже URLConnection имеет setConnectionTimeout() . Используйте это.
  • 0
    @BalusC - спасибо ... добавил свою точку зрения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню