[3.0-Triple] fix tri TheadPool is default (#10019)

This commit is contained in:
earthchen 2022-05-10 10:46:28 +08:00 committed by GitHub
parent d0ae161635
commit b4bc7aaa66
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 7 deletions

View File

@ -38,8 +38,16 @@ public interface ExecutorRepository {
*/
ExecutorService createExecutorIfAbsent(URL url);
/**
* Be careful,The semantics of this method are getOrDefaultExecutor
*
* @param url
* @return
*/
ExecutorService getExecutor(URL url);
/**
* Modify some of the threadpool's properties according to the url, for example, coreSize, maxSize, ...
*

View File

@ -126,14 +126,9 @@ public class TripleHttp2Protocol extends Http2WireProtocol implements ScopeModel
private Executor lookupExecutor(URL url) {
ExecutorRepository executorRepository = url.getOrDefaultApplicationModel()
return url.getOrDefaultApplicationModel()
.getExtensionLoader(ExecutorRepository.class)
.getDefaultExtension();
Executor urlExecutor = executorRepository.getExecutor(url);
if (urlExecutor == null) {
urlExecutor = executorRepository.createExecutorIfAbsent(url);
}
return urlExecutor;
.getDefaultExtension().getExecutor(url);
}
@Override

View File

@ -120,6 +120,10 @@ public class TripleProtocol extends AbstractProtocol {
triBuiltinService.getHealthStatusManager()
.setStatus(url.getServiceInterface(), HealthCheckResponse.ServingStatus.SERVING);
// init
url.getOrDefaultApplicationModel().getExtensionLoader(ExecutorRepository.class)
.getDefaultExtension()
.createExecutorIfAbsent(url);
PortUnificationExchanger.bind(invoker.getUrl());
return exporter;
}