RestTemplate restTemplate = new RestTemplate(); SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); requestFactory.setConnectTimeout(5000); // 设置连接超时时间为5秒 requestFactory.setReadTimeout(5000); // 设置读取超时时间为5秒 restTemplate.setRequestFactory(requestFactory);
/** * * <p> * 检查数据源状态 * </p> * * @Title: checkDataSouceStatus * @param: @return * @author: jlcui * @date: 2023年9月14日 下午4:12:12 */ private void checkDataSouceStatus(ConfigNetauthDataSourceBean bean,Integer num) { try { SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); requestFactory.setConnectTimeout(500); requestFactory.setReadTimeout(500); RestTemplate restTemplate = HttpClientUtils.gethTttpRestTemplate(); restTemplate.setRequestFactory(requestFactory); String url = "http://10.210.21.123:8082/actuator"; UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url); URI uri = builder.build().encode().toUri(); ResponseEntity<JSONObject> forEntity = restTemplate.getForEntity(uri, JSONObject.class); if (HttpStatus.OK.equals(forEntity.getStatusCode())) { // 如果获取数据成功后,判断是否时延迟或者正常状态 if (num == Const.CONST_INTEGER_0) { bean.setStatus(Const.CONST_INTEGER_2); } else { bean.setStatus(Const.CONST_INTEGER_3); } } else { bean.setStatus(Const.CONST_INTEGER_4); } configNetauthDataSourceService.update(bean); } catch (Exception e) { // 连接超时或读取超时抛出的异常 if (e.getCause() instanceof SocketTimeoutException) { // 超时请求超过三次时则判断故障 if (num < Const.CONST_INTEGER_3) { num = num + Const.CONST_INTEGER_1; checkDataSouceStatus(bean,num); } else { bean.setStatus(Const.CONST_INTEGER_4); configNetauthDataSourceService.update(bean); } } else { bean.setStatus(Const.CONST_INTEGER_4); configNetauthDataSourceService.update(bean); e.printStackTrace(); } } }
- RestTemplate spring boot httpresttemplate spring boot http 示例resttemplate spring boot resttemplate spring https boot resttemplate http resttemplate feigh http resttemplate springcloud spring ribbon multivaluemap resttemplate spring resttemplate spring resttemplate模板spring rest resttemplate spring feign