diff --git a/src/main/java/com/eactive/eai/adapter/http/client/HttpClient5AdapterServiceSupport.java b/src/main/java/com/eactive/eai/adapter/http/client/HttpClient5AdapterServiceSupport.java index 64e0e6d..98d890c 100644 --- a/src/main/java/com/eactive/eai/adapter/http/client/HttpClient5AdapterServiceSupport.java +++ b/src/main/java/com/eactive/eai/adapter/http/client/HttpClient5AdapterServiceSupport.java @@ -428,9 +428,12 @@ public abstract class HttpClient5AdapterServiceSupport implements HttpClientAdap this.client = HttpClients.custom() .disableDefaultUserAgent() .disableContentCompression() - .addRequestInterceptorLast(requestLogInterceptor) + .disableRedirectHandling() // redirect 자동 재전송 비활성화 + .disableAutomaticRetries() // 429 포함 자동 재시도 비활성화 + .addRequestInterceptorLast(requestLogInterceptor) .addResponseInterceptorFirst(responseLogInterceptor) .setConnectionManager(connectionManager) + .evictExpiredConnections() .build(); } diff --git a/src/main/java/com/eactive/eai/adapter/http/client/impl/DeadlineAwareRetryExecutor.java b/src/main/java/com/eactive/eai/adapter/http/client/impl/DeadlineAwareRetryExecutor.java index a0b8226..43bc80b 100644 --- a/src/main/java/com/eactive/eai/adapter/http/client/impl/DeadlineAwareRetryExecutor.java +++ b/src/main/java/com/eactive/eai/adapter/http/client/impl/DeadlineAwareRetryExecutor.java @@ -12,6 +12,7 @@ import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.core5.http.protocol.HttpContext; +import com.eactive.eai.adapter.http.client.HttpClientAdapterServiceKey; import com.eactive.eai.common.util.Logger; @@ -72,6 +73,16 @@ public class DeadlineAwareRetryExecutor { boolean doRetry = false; try { + if (attempt > 0) { + Integer logProcessNo = (Integer) context.getAttribute(HttpClientAdapterServiceKey.LOG_PROCESS_NO); + if (logProcessNo == null || logProcessNo <= 0) { + logProcessNo = 200; + } + logProcessNo++; + + context.setAttribute(HttpClientAdapterServiceKey.LOG_PROCESS_NO, logProcessNo); + } + response = httpClient.execute(request, context); int status = response.getCode();