瀏覽代碼

Fix a bug of retry (#709)

Signed-off-by: yhmo <yihua.mo@zilliz.com>
groot 1 年之前
父節點
當前提交
92667f3c39

+ 6 - 2
examples/main/java/io/milvus/GeneralExample.java

@@ -21,6 +21,7 @@ package io.milvus;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.google.protobuf.ByteString;
 import com.google.protobuf.ByteString;
+import io.milvus.client.MilvusClient;
 import io.milvus.client.MilvusServiceClient;
 import io.milvus.client.MilvusServiceClient;
 import io.milvus.common.clientenum.ConsistencyLevelEnum;
 import io.milvus.common.clientenum.ConsistencyLevelEnum;
 import io.milvus.common.utils.JacksonUtils;
 import io.milvus.common.utils.JacksonUtils;
@@ -44,7 +45,7 @@ import java.util.concurrent.TimeUnit;
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
 public class GeneralExample {
 public class GeneralExample {
-    private static final MilvusServiceClient milvusClient;
+    private static final MilvusClient milvusClient;
 
 
     static {
     static {
         ConnectParam connectParam = ConnectParam.newBuilder()
         ConnectParam connectParam = ConnectParam.newBuilder()
@@ -52,7 +53,10 @@ public class GeneralExample {
                 .withPort(19530)
                 .withPort(19530)
                 .withAuthorization("root","Milvus")
                 .withAuthorization("root","Milvus")
                 .build();
                 .build();
-        milvusClient = new MilvusServiceClient(connectParam);
+        RetryParam retryParam = RetryParam.newBuilder()
+                .withMaxRetryTimes(3)
+                .build();
+        milvusClient = new MilvusServiceClient(connectParam).withRetry(retryParam);
     }
     }
 
 
     private static final String COLLECTION_NAME = "java_sdk_example_general";
     private static final String COLLECTION_NAME = "java_sdk_example_general";

+ 4 - 2
src/main/java/io/milvus/client/MilvusServiceClient.java

@@ -316,8 +316,10 @@ public class MilvusServiceClient extends AbstractMilvusGrpcClient {
 
 
                     // for server-side returned error, only retry for rate limit
                     // for server-side returned error, only retry for rate limit
                     // in new error codes of v2.3, rate limit error value is 8
                     // in new error codes of v2.3, rate limit error value is 8
-                    if (!(serverException.getCompatibleCode() == ErrorCode.RateLimit
-                            || serverException.getStatus() == 8)) {
+                    if (retryParam.isRetryOnRateLimie() &&
+                            (serverException.getCompatibleCode() == ErrorCode.RateLimit ||
+                                    serverException.getStatus() == 8)) {
+                    } else {
                         return resp;
                         return resp;
                     }
                     }
                 } else {
                 } else {