diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutor.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutor.java index 16f10ae54..58f6667d0 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutor.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutor.java @@ -22,6 +22,7 @@ import java.util.Objects; import java.util.concurrent.Executor; import com.alibaba.ttl.threadpool.TtlExecutors; +import com.alibaba.ttl.threadpool.agent.TtlAgent; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.metadata.concurrent.MetadataWrap; @@ -38,8 +39,13 @@ class MetadataExecutor implements Executor, MetadataWrap { private final Executor delegate; - MetadataExecutor(Executor delegate) { - this.delegate = TtlExecutors.getTtlExecutor(delegate); + MetadataExecutor(@NonNull Executor delegate) { + if (TtlAgent.isTtlAgentLoaded() || TtlExecutors.isTtlWrapper(delegate)) { + this.delegate = delegate; + } + else { + this.delegate = TtlExecutors.getTtlExecutor(delegate); + } } @Override diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorService.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorService.java index b625786d7..983826813 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorService.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorService.java @@ -29,6 +29,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import com.alibaba.ttl.threadpool.TtlExecutors; +import com.alibaba.ttl.threadpool.agent.TtlAgent; import com.tencent.cloud.common.metadata.MetadataContext; import org.springframework.lang.NonNull; @@ -44,9 +45,14 @@ class MetadataExecutorService extends MetadataExecutor implements ExecutorServic private final ExecutorService delegate; - MetadataExecutorService(ExecutorService delegate) { + MetadataExecutorService(@NonNull ExecutorService delegate) { super(delegate); - this.delegate = TtlExecutors.getTtlExecutorService(delegate); + if (TtlAgent.isTtlAgentLoaded() || TtlExecutors.isTtlWrapper(delegate)) { + this.delegate = delegate; + } + else { + this.delegate = TtlExecutors.getTtlExecutorService(delegate); + } } @Override diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataScheduledExecutorService.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataScheduledExecutorService.java index 01b1a103b..e49adbc64 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataScheduledExecutorService.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataScheduledExecutorService.java @@ -25,6 +25,7 @@ import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import com.alibaba.ttl.threadpool.TtlExecutors; +import com.alibaba.ttl.threadpool.agent.TtlAgent; import com.tencent.cloud.common.metadata.MetadataContext; import org.springframework.lang.NonNull; @@ -41,9 +42,14 @@ class MetadataScheduledExecutorService extends MetadataExecutorService private final ScheduledExecutorService delegate; - MetadataScheduledExecutorService(ScheduledExecutorService delegate) { + MetadataScheduledExecutorService(@NonNull ScheduledExecutorService delegate) { super(delegate); - this.delegate = TtlExecutors.getTtlScheduledExecutorService(delegate); + if (TtlAgent.isTtlAgentLoaded() || TtlExecutors.isTtlWrapper(delegate)) { + this.delegate = delegate; + } + else { + this.delegate = TtlExecutors.getTtlScheduledExecutorService(delegate); + } } @Override