From dbfa77e992daf9e1b1af256ba5cc7fd11135f4ee Mon Sep 17 00:00:00 2001 From: Leixinxin Date: Tue, 19 Nov 2019 23:36:51 +0800 Subject: [PATCH] feat:(add customize resttempalte timeout.) --- src/main/java/run/halo/app/config/HaloConfiguration.java | 8 ++++++-- .../run/halo/app/config/properties/HaloProperties.java | 6 ++++++ src/main/resources/application.yaml | 5 ++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/run/halo/app/config/HaloConfiguration.java b/src/main/java/run/halo/app/config/HaloConfiguration.java index 49f4bff22..216e12bdf 100644 --- a/src/main/java/run/halo/app/config/HaloConfiguration.java +++ b/src/main/java/run/halo/app/config/HaloConfiguration.java @@ -2,6 +2,7 @@ package run.halo.app.config; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.web.client.RestTemplateBuilder; @@ -29,6 +30,7 @@ import run.halo.app.utils.HttpClientUtils; import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; +import java.time.temporal.ChronoUnit; /** * Halo configuration. @@ -40,7 +42,8 @@ import java.security.NoSuchAlgorithmException; @Slf4j public class HaloConfiguration { - private final static int TIMEOUT = 5000; + @Autowired + HaloProperties haloProperties; @Bean public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) { @@ -51,7 +54,8 @@ public class HaloConfiguration { @Bean public RestTemplate httpsRestTemplate(RestTemplateBuilder builder) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException { RestTemplate httpsRestTemplate = builder.build(); - httpsRestTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(HttpClientUtils.createHttpsClient(TIMEOUT))); + httpsRestTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(HttpClientUtils.createHttpsClient( + (int) haloProperties.getDownloadTimeout().toMillis()))); return httpsRestTemplate; } diff --git a/src/main/java/run/halo/app/config/properties/HaloProperties.java b/src/main/java/run/halo/app/config/properties/HaloProperties.java index 148bb7128..a5960a515 100644 --- a/src/main/java/run/halo/app/config/properties/HaloProperties.java +++ b/src/main/java/run/halo/app/config/properties/HaloProperties.java @@ -8,6 +8,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; +import java.time.Duration; /** @@ -59,6 +60,11 @@ public class HaloProperties { */ private String backupUrlPrefix = "/backup"; + /** + * Download Timeout. + */ + private Duration downloadTimeout = Duration.ofSeconds(30); + public HaloProperties() throws IOException { // Create work directory if not exist Files.createDirectories(Paths.get(workDir)); diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 53fedb793..6086fbdd3 100755 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -46,4 +46,7 @@ logging: level: run.halo.app: INFO file: - path: ${user.home}/.halo/logs \ No newline at end of file + path: ${user.home}/.halo/logs + +halo: + download-timeout: 5m \ No newline at end of file