如何使用http状态代码进行弹簧重试

时间:2018-11-09 01:48:07

标签: java spring spring-mvc spring-boot

我目前正在使用带有restTemplate的spring 2,并且希望重试一次仅发送带有某些状态代码或任何代码500的发帖请求。

我该怎么做?

这是我的代码

@Retryable(value = RestClientException.class, exclude = {UnknownHostException.class},
           backoff=@Backoff(delayExpression = 10000,
                            multiplierExpression = 2,
                            maxDelayExpression = 50000))
    public HttpStatus postRequest(final File file) throws RestClientException {
        MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
        body.add("file", new FileSystemResource(file));

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.MULTIPART_FORM_DATA);
        headers.set("Token", mytoken);

        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
        ResponseEntity<String> response = restTemplate.exchange(URI, HttpMethod.POST,requestEntity, String.class);

        return response.getStatusCode();
    }

0 个答案:

没有答案