You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2023/06/12 11:28:12 UTC

[dubbo] branch 3.2 updated: Support Reference check timeout (#12506)

This is an automated email from the ASF dual-hosted git repository.

albumenj pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.2 by this push:
     new 784edd7a85 Support Reference check timeout (#12506)
784edd7a85 is described below

commit 784edd7a85e95ef1512232a13182df6b251329d2
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Mon Jun 12 19:28:03 2023 +0800

    Support Reference check timeout (#12506)
---
 .../src/main/java/org/apache/dubbo/config/ModuleConfig.java | 13 +++++++++++++
 .../apache/dubbo/config/deploy/DefaultModuleDeployer.java   |  5 ++++-
 .../src/main/resources/META-INF/dubbo.xsd                   |  5 +++++
 3 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/ModuleConfig.java b/dubbo-common/src/main/java/org/apache/dubbo/config/ModuleConfig.java
index 539fe9137d..511c6bbfb7 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/ModuleConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/ModuleConfig.java
@@ -92,6 +92,11 @@ public class ModuleConfig extends AbstractConfig {
      */
     private Integer exportThreadNum;
 
+    /**
+     * The timeout to check references
+     */
+    private Long checkReferenceTimeout;
+
     public ModuleConfig() {
         super();
     }
@@ -251,4 +256,12 @@ public class ModuleConfig extends AbstractConfig {
     public void setExportAsync(Boolean exportAsync) {
         this.exportAsync = exportAsync;
     }
+
+    public Long getCheckReferenceTimeout() {
+        return checkReferenceTimeout;
+    }
+
+    public void setCheckReferenceTimeout(Long checkReferenceTimeout) {
+        this.checkReferenceTimeout = checkReferenceTimeout;
+    }
 }
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultModuleDeployer.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultModuleDeployer.java
index 7c4eaf6baa..6bde316558 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultModuleDeployer.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultModuleDeployer.java
@@ -46,6 +46,7 @@ import org.apache.dubbo.rpc.model.ProviderModel;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutorService;
@@ -395,8 +396,10 @@ public class DefaultModuleDeployer extends AbstractDeployer<ModuleModel> impleme
     }
 
     private void checkReferences() {
+        Optional<ModuleConfig> module = configManager.getModule();
+        long timeout = module.map(ModuleConfig::getCheckReferenceTimeout).orElse(30000L);
         for (ReferenceConfigBase<?> rc : configManager.getReferences()) {
-            referenceCache.check(rc, 3000);
+            referenceCache.check(rc, timeout);
         }
     }
 
diff --git a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd
index 73e059465a..a2bcbee0bd 100644
--- a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd
+++ b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd
@@ -624,6 +624,11 @@
                 <xsd:documentation><![CDATA[ Thread num for asynchronous export pool size. ]]></xsd:documentation>
             </xsd:annotation>
         </xsd:attribute>
+        <xsd:attribute name="check-reference-timeout" type="xsd:long">
+            <xsd:annotation>
+                <xsd:documentation><![CDATA[ The timeout to check references. ]]></xsd:documentation>
+            </xsd:annotation>
+        </xsd:attribute>
     </xsd:complexType>
 
     <xsd:complexType name="registryType">