Commit f01acec1 authored by 杨锐's avatar 杨锐

cn.quantgroup.tech.brave.service.ITechExecutorServiceBuilder#buildExecutorService

parent 1e7fac18
...@@ -10,9 +10,5 @@ import java.util.concurrent.*; ...@@ -10,9 +10,5 @@ import java.util.concurrent.*;
*/ */
public interface ITechExecutorServiceBuilder { public interface ITechExecutorServiceBuilder {
ExecutorService buildExecutorService(int corePoolSize, ExecutorService buildExecutorService(ExecutorService executorService);
int maxPoolSize,
int queueCapacity,
String threadNamePrefix,
RejectedExecutionHandler rejectedExecutionHandler);
} }
...@@ -2,10 +2,9 @@ package cn.quantgroup.tech.brave.service.impl; ...@@ -2,10 +2,9 @@ package cn.quantgroup.tech.brave.service.impl;
import cn.quantgroup.tech.brave.service.ITechExecutorServiceBuilder; import cn.quantgroup.tech.brave.service.ITechExecutorServiceBuilder;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.RejectedExecutionHandler;
/** /**
* Date: 2020/1/6 * Date: 2020/1/6
...@@ -14,23 +13,10 @@ import java.util.concurrent.RejectedExecutionHandler; ...@@ -14,23 +13,10 @@ import java.util.concurrent.RejectedExecutionHandler;
* @author: yangrui * @author: yangrui
*/ */
@Slf4j @Slf4j
@Component
public class TechExecutorServiceBuilderNoTrace implements ITechExecutorServiceBuilder { public class TechExecutorServiceBuilderNoTrace implements ITechExecutorServiceBuilder {
@Override @Override
public ExecutorService buildExecutorService(int corePoolSize, public ExecutorService buildExecutorService(ExecutorService executorService) {
int maxPoolSize, return executorService;
int queueCapacity,
String threadNamePrefix,
RejectedExecutionHandler rejectedExecutionHandler) {
log.info("构建TechExecutorServiceBuilderNoTrace, corePoolSize = 【{}】, maxPoolSize = 【{}】, queueCapacity = 【{}】, " +
"threadNamePrefix = 【{}】, rejectedExecutionHandler = 【{}】", corePoolSize, maxPoolSize, queueCapacity,
threadNamePrefix, rejectedExecutionHandler);
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(corePoolSize);
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity);
executor.setThreadNamePrefix(threadNamePrefix);
executor.setRejectedExecutionHandler(rejectedExecutionHandler);
executor.initialize();
return executor.getThreadPoolExecutor();
} }
} }
...@@ -4,36 +4,23 @@ import brave.propagation.CurrentTraceContext; ...@@ -4,36 +4,23 @@ import brave.propagation.CurrentTraceContext;
import cn.quantgroup.tech.brave.service.ITechExecutorServiceBuilder; import cn.quantgroup.tech.brave.service.ITechExecutorServiceBuilder;
import cn.quantgroup.tech.brave.slf4j.MDCCurrentTraceContext; import cn.quantgroup.tech.brave.slf4j.MDCCurrentTraceContext;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.RejectedExecutionHandler;
/** /**
* zipkin线程池追踪一致性
* Date: 2020/1/6 * Date: 2020/1/6
* Time: 下午4:52 * Time: 下午4:52
* *
* @author: yangrui * @author: yangrui
*/ */
@Slf4j @Slf4j
@Component
public class TechExecutorServiceBuilderTrace implements ITechExecutorServiceBuilder { public class TechExecutorServiceBuilderTrace implements ITechExecutorServiceBuilder {
@Override @Override
public ExecutorService buildExecutorService(int corePoolSize, public ExecutorService buildExecutorService(ExecutorService executorService) {
int maxPoolSize,
int queueCapacity,
String threadNamePrefix,
RejectedExecutionHandler rejectedExecutionHandler) {
log.info("构建TechExecutorServiceBuilderTrace, corePoolSize = 【{}】, maxPoolSize = 【{}】, queueCapacity = 【{}】, " +
"threadNamePrefix = 【{}】, rejectedExecutionHandler = 【{}】", corePoolSize, maxPoolSize, queueCapacity,
threadNamePrefix, rejectedExecutionHandler);
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(corePoolSize);
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity);
executor.setThreadNamePrefix(threadNamePrefix);
executor.setRejectedExecutionHandler(rejectedExecutionHandler);
executor.initialize();
CurrentTraceContext mdcCurrentTraceContext = MDCCurrentTraceContext.create(); CurrentTraceContext mdcCurrentTraceContext = MDCCurrentTraceContext.create();
return mdcCurrentTraceContext.executorService(executor.getThreadPoolExecutor()); return mdcCurrentTraceContext.executorService(executorService);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment