Commit 1c7e8460 authored by 杨锐's avatar 杨锐

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

parent a5bdf5eb
package cn.quantgroup.tech.brave.service;
import java.util.concurrent.*;
/**
* Date: 2020/1/6
* Time: 下午4:52
*
* @author: yangrui
*/
public interface ITechExecutorServiceBuilder {
ExecutorService buildExecutorService(int corePoolSize,
int maxPoolSize,
int queueCapacity,
String threadNamePrefix,
RejectedExecutionHandler rejectedExecutionHandler);
}
package cn.quantgroup.tech.brave.service.impl;
import cn.quantgroup.tech.brave.service.ITechExecutorServiceBuilder;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.RejectedExecutionHandler;
/**
* Date: 2020/1/6
* Time: 下午4:52
*
* @author: yangrui
*/
public class ITechExecutorServiceBuilderNoTrace implements ITechExecutorServiceBuilder {
@Override
public ExecutorService buildExecutorService(int corePoolSize,
int maxPoolSize,
int queueCapacity,
String threadNamePrefix,
RejectedExecutionHandler 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();
}
}
package cn.quantgroup.tech.brave.service.impl;
import brave.propagation.CurrentTraceContext;
import cn.quantgroup.tech.brave.service.ITechExecutorServiceBuilder;
import cn.quantgroup.tech.brave.slf4j.MDCCurrentTraceContext;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.RejectedExecutionHandler;
/**
* Date: 2020/1/6
* Time: 下午4:52
*
* @author: yangrui
*/
public class ITechExecutorServiceBuilderTrace implements ITechExecutorServiceBuilder {
@Override
public ExecutorService buildExecutorService(int corePoolSize,
int maxPoolSize,
int queueCapacity,
String threadNamePrefix,
RejectedExecutionHandler 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();
return mdcCurrentTraceContext.executorService(executor.getThreadPoolExecutor());
}
}
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