From 6d78d0d40a3ceb713f6844743633ec74e7f7bb47 Mon Sep 17 00:00:00 2001 From: zhaozhengjie <237651143@qq.com> Date: 星期一, 05 九月 2022 17:57:05 +0800 Subject: [PATCH] bug修改 --- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FeignHystrixConcurrencyStrategy.java | 256 +++++++++++++++++++++++++------------------------- 1 files changed, 128 insertions(+), 128 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FeignHystrixConcurrencyStrategy.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FeignHystrixConcurrencyStrategy.java index 3b145f9..4ef3646 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FeignHystrixConcurrencyStrategy.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FeignHystrixConcurrencyStrategy.java @@ -1,128 +1,128 @@ -package com.panzhihua.common.utlis; - -import com.netflix.hystrix.HystrixThreadPoolKey; -import com.netflix.hystrix.HystrixThreadPoolProperties; -import com.netflix.hystrix.strategy.HystrixPlugins; -import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; -import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariable; -import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableLifecycle; -import com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier; -import com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook; -import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; -import com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy; -import com.netflix.hystrix.strategy.properties.HystrixProperty; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import org.springframework.web.context.request.RequestAttributes; -import org.springframework.web.context.request.RequestContextHolder; - -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.Callable; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -@Component -public class FeignHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy { - - private static final Logger log = LoggerFactory.getLogger(FeignHystrixConcurrencyStrategy.class); - - private HystrixConcurrencyStrategy delegate; - - public FeignHystrixConcurrencyStrategy() { - try { - this.delegate = HystrixPlugins.getInstance().getConcurrencyStrategy(); - if (this.delegate instanceof FeignHystrixConcurrencyStrategy) { - // Welcome to singleton hell... - return; - } - HystrixCommandExecutionHook commandExecutionHook = HystrixPlugins - .getInstance().getCommandExecutionHook(); - HystrixEventNotifier eventNotifier = HystrixPlugins.getInstance() - .getEventNotifier(); - HystrixMetricsPublisher metricsPublisher = HystrixPlugins.getInstance() - .getMetricsPublisher(); - HystrixPropertiesStrategy propertiesStrategy = HystrixPlugins.getInstance() - .getPropertiesStrategy(); - this.logCurrentStateOfHystrixPlugins(eventNotifier, metricsPublisher, - propertiesStrategy); - HystrixPlugins.reset(); - HystrixPlugins.getInstance().registerConcurrencyStrategy(this); - HystrixPlugins.getInstance() - .registerCommandExecutionHook(commandExecutionHook); - HystrixPlugins.getInstance().registerEventNotifier(eventNotifier); - HystrixPlugins.getInstance().registerMetricsPublisher(metricsPublisher); - HystrixPlugins.getInstance().registerPropertiesStrategy(propertiesStrategy); - } - catch (Exception e) { - log.error("Failed to register Sleuth Hystrix Concurrency Strategy", e); - } - } - - private void logCurrentStateOfHystrixPlugins(HystrixEventNotifier eventNotifier, - HystrixMetricsPublisher metricsPublisher, - HystrixPropertiesStrategy propertiesStrategy) { - if (log.isDebugEnabled()) { - log.debug("Current Hystrix plugins configuration is [" - + "concurrencyStrategy [" + this.delegate + "]," + "eventNotifier [" - + eventNotifier + "]," + "metricPublisher [" + metricsPublisher + "]," - + "propertiesStrategy [" + propertiesStrategy + "]," + "]"); - log.debug("Registering Sleuth Hystrix Concurrency Strategy."); - } - } - - @Override - public <T> Callable<T> wrapCallable(Callable<T> callable) { - RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); - return new WrappedCallable<>(callable, requestAttributes); - } - - @Override - public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey, - HystrixProperty<Integer> corePoolSize, - HystrixProperty<Integer> maximumPoolSize, - HystrixProperty<Integer> keepAliveTime, TimeUnit unit, - BlockingQueue<Runnable> workQueue) { - return this.delegate.getThreadPool(threadPoolKey, corePoolSize, maximumPoolSize, - keepAliveTime, unit, workQueue); - } - - @Override - public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey, - HystrixThreadPoolProperties threadPoolProperties) { - return this.delegate.getThreadPool(threadPoolKey, threadPoolProperties); - } - - @Override - public BlockingQueue<Runnable> getBlockingQueue(int maxQueueSize) { - return this.delegate.getBlockingQueue(maxQueueSize); - } - - @Override - public <T> HystrixRequestVariable<T> getRequestVariable( - HystrixRequestVariableLifecycle<T> rv) { - return this.delegate.getRequestVariable(rv); - } - - static class WrappedCallable<T> implements Callable<T> { - - private final Callable<T> target; - private final RequestAttributes requestAttributes; - - public WrappedCallable(Callable<T> target, RequestAttributes requestAttributes) { - this.target = target; - this.requestAttributes = requestAttributes; - } - - @Override - public T call() throws Exception { - try { - RequestContextHolder.setRequestAttributes(requestAttributes); - return target.call(); - } - finally { - RequestContextHolder.resetRequestAttributes(); - } - } - } -} +//package com.panzhihua.common.utlis; +// +//import com.netflix.hystrix.HystrixThreadPoolKey; +//import com.netflix.hystrix.HystrixThreadPoolProperties; +//import com.netflix.hystrix.strategy.HystrixPlugins; +//import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; +//import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariable; +//import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableLifecycle; +//import com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier; +//import com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook; +//import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; +//import com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy; +//import com.netflix.hystrix.strategy.properties.HystrixProperty; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.stereotype.Component; +//import org.springframework.web.context.request.RequestAttributes; +//import org.springframework.web.context.request.RequestContextHolder; +// +//import java.util.concurrent.BlockingQueue; +//import java.util.concurrent.Callable; +//import java.util.concurrent.ThreadPoolExecutor; +//import java.util.concurrent.TimeUnit; +// +//@Component +//public class FeignHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy { +// +// private static final Logger log = LoggerFactory.getLogger(FeignHystrixConcurrencyStrategy.class); +// +// private HystrixConcurrencyStrategy delegate; +// +// public FeignHystrixConcurrencyStrategy() { +// try { +// this.delegate = HystrixPlugins.getInstance().getConcurrencyStrategy(); +// if (this.delegate instanceof FeignHystrixConcurrencyStrategy) { +// // Welcome to singleton hell... +// return; +// } +// HystrixCommandExecutionHook commandExecutionHook = HystrixPlugins +// .getInstance().getCommandExecutionHook(); +// HystrixEventNotifier eventNotifier = HystrixPlugins.getInstance() +// .getEventNotifier(); +// HystrixMetricsPublisher metricsPublisher = HystrixPlugins.getInstance() +// .getMetricsPublisher(); +// HystrixPropertiesStrategy propertiesStrategy = HystrixPlugins.getInstance() +// .getPropertiesStrategy(); +// this.logCurrentStateOfHystrixPlugins(eventNotifier, metricsPublisher, +// propertiesStrategy); +// HystrixPlugins.reset(); +// HystrixPlugins.getInstance().registerConcurrencyStrategy(this); +// HystrixPlugins.getInstance() +// .registerCommandExecutionHook(commandExecutionHook); +// HystrixPlugins.getInstance().registerEventNotifier(eventNotifier); +// HystrixPlugins.getInstance().registerMetricsPublisher(metricsPublisher); +// HystrixPlugins.getInstance().registerPropertiesStrategy(propertiesStrategy); +// } +// catch (Exception e) { +// log.error("Failed to register Sleuth Hystrix Concurrency Strategy", e); +// } +// } +// +// private void logCurrentStateOfHystrixPlugins(HystrixEventNotifier eventNotifier, +// HystrixMetricsPublisher metricsPublisher, +// HystrixPropertiesStrategy propertiesStrategy) { +// if (log.isDebugEnabled()) { +// log.debug("Current Hystrix plugins configuration is [" +// + "concurrencyStrategy [" + this.delegate + "]," + "eventNotifier [" +// + eventNotifier + "]," + "metricPublisher [" + metricsPublisher + "]," +// + "propertiesStrategy [" + propertiesStrategy + "]," + "]"); +// log.debug("Registering Sleuth Hystrix Concurrency Strategy."); +// } +// } +// +// @Override +// public <T> Callable<T> wrapCallable(Callable<T> callable) { +// RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); +// return new WrappedCallable<>(callable, requestAttributes); +// } +// +// @Override +// public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey, +// HystrixProperty<Integer> corePoolSize, +// HystrixProperty<Integer> maximumPoolSize, +// HystrixProperty<Integer> keepAliveTime, TimeUnit unit, +// BlockingQueue<Runnable> workQueue) { +// return this.delegate.getThreadPool(threadPoolKey, corePoolSize, maximumPoolSize, +// keepAliveTime, unit, workQueue); +// } +// +// @Override +// public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey, +// HystrixThreadPoolProperties threadPoolProperties) { +// return this.delegate.getThreadPool(threadPoolKey, threadPoolProperties); +// } +// +// @Override +// public BlockingQueue<Runnable> getBlockingQueue(int maxQueueSize) { +// return this.delegate.getBlockingQueue(maxQueueSize); +// } +// +// @Override +// public <T> HystrixRequestVariable<T> getRequestVariable( +// HystrixRequestVariableLifecycle<T> rv) { +// return this.delegate.getRequestVariable(rv); +// } +// +// static class WrappedCallable<T> implements Callable<T> { +// +// private final Callable<T> target; +// private final RequestAttributes requestAttributes; +// +// public WrappedCallable(Callable<T> target, RequestAttributes requestAttributes) { +// this.target = target; +// this.requestAttributes = requestAttributes; +// } +// +// @Override +// public T call() throws Exception { +// try { +// RequestContextHolder.setRequestAttributes(requestAttributes); +// return target.call(); +// } +// finally { +// RequestContextHolder.resetRequestAttributes(); +// } +// } +// } +//} -- Gitblit v1.7.1