Сделать время ожидания настраиваемым. Самый простой способ - просто использовать системное свойство и прочитать его с Integer.getInteger
:
private final static int SOCKET_TIMEOUT =
Integer.getInteger("com.yourapp.module.socketTimeout", 1000); // default 1 sec
Затем, при запуске приложения для отладки, просто установите свойство из командной строки (или соответствующего файла конфигурации, в зависимости от среды, в которой работает ваше приложение):
java -Dcom.yourapp.module.socketTimeout=1000000 MainClass
Это хорошо, потому что он волшебным образом не изменяет поведение при запуске приложения в отладчике, и вы можете изменить время ожидания, когда не выполняется отладка (например, если вам нужно запустить его где-то с медленным соединением, некоторые день).
(Конечно, если ваша система уже использует файл конфигурации, может быть целесообразно вместо этого добавить это значение в качестве записи.)
Относительно того, является ли одна секунда подходящим тайм-аутом ... это полностью зависит от приложения. Иногда лучше дать правильный ответ , в конечном итоге , в других случаях быстрый провал лучше, чем ожидание успеха.