AB单创建逻辑测试完成
parent
83b512789b
commit
d4f012bbcc
@ -0,0 +1,117 @@
|
||||
package me.zhengjie.config.thread;
|
||||
|
||||
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.LinkedBlockingDeque;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 线程池配置总类,用于配置线程池
|
||||
*/
|
||||
@Configuration
|
||||
@EnableAsync
|
||||
public class ThreadPoolConfig {
|
||||
|
||||
/**
|
||||
* 从配置文件中加载线程池相关的配置
|
||||
*/
|
||||
|
||||
/**
|
||||
* produce
|
||||
*/
|
||||
@Value(value = "${produce.task.thread_pool.corePoolSize}")
|
||||
private int produceCorePoolSize = 2;
|
||||
@Value(value = "${produce.task.thread_pool.maxPoolSize}")
|
||||
private int produceMaxPoolSize = 16;
|
||||
@Value(value = "${produce.task.thread_pool.queueCapacity}")
|
||||
private int produceQueueCapacity = 3;
|
||||
@Value(value = "${produce.task.thread_pool.ThreadNamePrefix}")
|
||||
private String produceThreadNamePrefix = "ProduceLocalFileTaskExecutor-"; // fixme 这个属性暂时没用起来
|
||||
|
||||
/**
|
||||
* produce
|
||||
*/
|
||||
@Value(value = "${send.task.thread_pool.corePoolSize}")
|
||||
private int sendCorePoolSize = 2;
|
||||
@Value(value = "${send.task.thread_pool.maxPoolSize}")
|
||||
private int sendMaxPoolSize = 16;
|
||||
@Value(value = "${send.task.thread_pool.queueCapacity}")
|
||||
private int sendQueueCapacity = 3;
|
||||
@Value(value = "${send.task.thread_pool.ThreadNamePrefix}")
|
||||
private String sendThreadNamePrefix = "ProduceLocalFileTaskExecutor-"; // fixme 这个属性暂时没用起来
|
||||
|
||||
/**
|
||||
* produce
|
||||
*/
|
||||
@Value(value = "${merge.task.thread_pool.corePoolSize}")
|
||||
private int mergeCorePoolSize = 2;
|
||||
@Value(value = "${merge.task.thread_pool.maxPoolSize}")
|
||||
private int mergeMaxPoolSize = 16;
|
||||
@Value(value = "${merge.task.thread_pool.queueCapacity}")
|
||||
private int mergeQueueCapacity = 3;
|
||||
@Value(value = "${merge.task.thread_pool.ThreadNamePrefix}")
|
||||
private String mergeThreadNamePrefix = "ProduceLocalFileTaskExecutor-"; // fixme 这个属性暂时没用起来
|
||||
|
||||
/**
|
||||
* 生成本地课包任务 - 异步线程池的配置类
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Bean(value = "ProduceLocalFileTaskExecutor")
|
||||
public Executor produceLocalFileTaskExecutor() {
|
||||
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
|
||||
produceCorePoolSize,
|
||||
produceMaxPoolSize,
|
||||
3,
|
||||
TimeUnit.SECONDS,
|
||||
new LinkedBlockingDeque<>(produceQueueCapacity),
|
||||
Executors.defaultThreadFactory(),
|
||||
new ThreadPoolExecutor.DiscardOldestPolicy()
|
||||
);
|
||||
return threadPoolExecutor;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送本地课包任务 - 异步线程池的配置类
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Bean(value = "SendRecordTaskExecutor")
|
||||
public Executor sendRecordTaskExecutor() {
|
||||
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
|
||||
sendCorePoolSize,
|
||||
sendMaxPoolSize,
|
||||
3,
|
||||
TimeUnit.SECONDS,
|
||||
new LinkedBlockingDeque<>(sendQueueCapacity),
|
||||
Executors.defaultThreadFactory(),
|
||||
new ThreadPoolExecutor.DiscardOldestPolicy()
|
||||
);
|
||||
return threadPoolExecutor;
|
||||
}
|
||||
|
||||
/**
|
||||
* 合并本地课包任务 - 异步线程池的配置类
|
||||
* @return
|
||||
*/
|
||||
@Bean(value = "MergeRecordTaskExecutor")
|
||||
public Executor mergeRecordTaskExecutor() {
|
||||
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
|
||||
mergeCorePoolSize,
|
||||
mergeMaxPoolSize,
|
||||
3,
|
||||
TimeUnit.SECONDS,
|
||||
new LinkedBlockingDeque<>(mergeQueueCapacity),
|
||||
Executors.defaultThreadFactory(),
|
||||
new ThreadPoolExecutor.DiscardOldestPolicy()
|
||||
);
|
||||
return threadPoolExecutor;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue