Support Reference check timeout (#12506)

This commit is contained in:
Albumen Kevin 2023-06-12 19:28:03 +08:00 committed by GitHub
parent 0f336d8736
commit 784edd7a85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 1 deletions

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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">