Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring cloud 如何创建名为@FeignClient的线程池_Spring Cloud_Spring Cloud Feign_Resilience4j - Fatal编程技术网

Spring cloud 如何创建名为@FeignClient的线程池

Spring cloud 如何创建名为@FeignClient的线程池,spring-cloud,spring-cloud-feign,resilience4j,Spring Cloud,Spring Cloud Feign,Resilience4j,我发现resilience4总是为每个外部方法创建一个线程池。在我的项目中有数百种虚假的方法。这样就有成千上万的隔板螺纹。 如何让它以@FeignClient的名称创建线程池? 我在下面的org.springframework.cloud.circuitbreaker.resilience4j.Resilience4jBulkheadProvider中找到了源代码: // The id like this: FooStub#queryFooList(QueryFooListParam)-

我发现resilience4总是为每个外部方法创建一个线程池。在我的项目中有数百种虚假的方法。这样就有成千上万的隔板螺纹。
如何让它以@FeignClient的名称创建线程池?
我在下面的
org.springframework.cloud.circuitbreaker.resilience4j.Resilience4jBulkheadProvider
中找到了源代码:

    // The id like this: FooStub#queryFooList(QueryFooListParam)-x
    // I would it like this: xxx-service. It is the name property of @FeignClient
    private <T> Supplier<CompletionStage<T>> decorateBulkhead(final String id, final Supplier<T> supplier) {
        Resilience4jBulkheadConfigurationBuilder.BulkheadConfiguration configuration = configurations
                .computeIfAbsent(id, defaultConfiguration);

        if (bulkheadRegistry.find(id).isPresent() && !threadPoolBulkheadRegistry.find(id).isPresent()) {
            Bulkhead bulkhead = bulkheadRegistry.bulkhead(id, configuration.getBulkheadConfig());
            CompletableFuture<T> asyncCall = CompletableFuture.supplyAsync(supplier);
            return Bulkhead.decorateCompletionStage(bulkhead, () -> asyncCall);
        }
        else {
            ThreadPoolBulkhead threadPoolBulkhead = threadPoolBulkheadRegistry.bulkhead(id,
                    configuration.getThreadPoolBulkheadConfig());
            return threadPoolBulkhead.decorateSupplier(supplier);
        }
    }
//id如下:FooStub#queryFooList(QueryFooListParam)-x
//我想要这个:xxx服务。它是@FeignClient的name属性
私人供应商decorateBulkhead(最终字符串id,最终供应商){
弹性4JBULKHEADConfigurationBuilder.BulkheadConfiguration配置=配置
.ComputeFabSent(id,默认配置);
if(bulkheadRegistry.find(id).isPresent()&&!threadPoolBulkheadRegistry.find(id).isPresent()){
舱壁舱壁=bulkheadRegistry.shumbird(id,configuration.getBulkheadConfig());
CompletableFuture asyncCall=CompletableFuture.SupplySync(供应商);
返回舱壁。装饰完成阶段(舱壁,()->异步调用);
}
否则{
ThreadPool隔板ThreadPool隔板=threadPoolBulkheadRegistry.隔板(id,
getThreadPoolBulkheadConfig());
退货。装饰供应商(供应商);
}
}