From 03f51571266a11d1927420f4b44bc0e7df0aef8c Mon Sep 17 00:00:00 2001 From: Assassinxc <330109311@qq.com> Date: Sat, 11 Jan 2025 17:36:28 +0800 Subject: [PATCH] add timeout option for etcd kvClient get --- .../dromara/dynamictp/common/properties/DtpProperties.java | 2 ++ .../org/dromara/dynamictp/starter/etcd/util/EtcdUtil.java | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/properties/DtpProperties.java b/common/src/main/java/org/dromara/dynamictp/common/properties/DtpProperties.java index c46105641..4aa613109 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/properties/DtpProperties.java +++ b/common/src/main/java/org/dromara/dynamictp/common/properties/DtpProperties.java @@ -209,6 +209,8 @@ public static class Etcd { private String authority = "ssl"; private String key; + + private long timeout = 30000L; } private static class Holder { diff --git a/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/util/EtcdUtil.java b/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/util/EtcdUtil.java index 8d71b4784..2538e4676 100644 --- a/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/util/EtcdUtil.java +++ b/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/util/EtcdUtil.java @@ -39,6 +39,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.concurrent.TimeUnit; /** * @author Redick01 @@ -97,7 +98,7 @@ public static Map getConfigMap(final DtpProperties.Etcd etcd, fi KeyValue keyValue = client(etcd) .getKVClient() .get(bytesOf(etcd.getKey())) - .get() + .get(etcd.getTimeout(), TimeUnit.MILLISECONDS) .getKvs() .get(0); if (Objects.isNull(keyValue)) { @@ -111,7 +112,7 @@ public static Map getConfigMap(final DtpProperties.Etcd etcd, fi GetResponse response = client(etcd) .getKVClient() .get(key, getOption) - .get(); + .get(etcd.getTimeout(), TimeUnit.MILLISECONDS); List keyValues = response.getKvs(); Map finalResultMap = resultMap; keyValues.forEach(keyValue -> {