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 impleme } private void checkReferences() { + Optional 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 @@ + + + + +