Skip to content

Commit

Permalink
Merge branch 'master' into springboot3
Browse files Browse the repository at this point in the history
  • Loading branch information
yanhom1314 committed Dec 17, 2023
2 parents bdd99ab + e449a52 commit f33bb59
Show file tree
Hide file tree
Showing 9 changed files with 234 additions and 90 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import java.util.concurrent.TimeUnit;

import static org.dromara.dynamictp.common.em.QueueTypeEnum.MEMORY_SAFE_LINKED_BLOCKING_QUEUE;
import static org.dromara.dynamictp.common.em.RejectedTypeEnum.ABORT_POLICY;
import static org.dromara.dynamictp.common.em.RejectedTypeEnum.CALLER_RUNS_POLICY;

/**
* @author Redick01
Expand All @@ -41,7 +41,7 @@
public class ThreadPoolConfiguration {

/**
* 通过{@link DynamicTp} 注解定义普通juc线程池,会享受到该框架监控功能,注解名称优先级高于方法名
* 通过{@link DynamicTp} 注解定义普通juc线程池,会享受到该框架增强能力,注解名称优先级高于方法名
*
* @return 线程池实例
*/
Expand All @@ -51,14 +51,19 @@ public ThreadPoolExecutor jucThreadPoolExecutor() {
return (ThreadPoolExecutor) Executors.newFixedThreadPool(1);
}

/**
* 通过{@link DynamicTp} 注解定义spring线程池,会享受到该框架增强能力,注解名称优先级高于方法名
*
* @return 线程池实例
*/
@DynamicTp("threadPoolTaskExecutor")
@Bean
public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
return new ThreadPoolTaskExecutor();
}

/**
* 通过{@link ThreadPoolCreator} 快速创建一些简单配置的动态线程池
* 通过{@link ThreadPoolCreator} 快速创建一些简单配置的线程池,使用默认参数
* tips: 建议直接在配置中心配置就行,不用@Bean声明
*
* @return 线程池实例
Expand All @@ -69,6 +74,7 @@ public DtpExecutor dtpExecutor0() {
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
Expand All @@ -86,9 +92,8 @@ public ThreadPoolExecutor dtpExecutor1() {
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池(推荐方式),
* ioIntensive,参考tomcat线程池设计,实现了处理io密集型任务的线程池,具体参数可以看代码注释
* <p>
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池
* eager,参考tomcat线程池设计,适用于处理io密集型任务场景,具体参数可以看代码注释
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
Expand All @@ -104,25 +109,36 @@ public DtpExecutor eagerDtpExecutor() {
.buildDynamic();
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池
* ordered,适用于处理有序任务场景,任务要实现Ordered接口,具体参数可以看代码注释
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
@Bean
public OrderedDtpExecutor orderedDtpExecutor() {
return (OrderedDtpExecutor) ThreadPoolBuilder.newBuilder()
return ThreadPoolBuilder.newBuilder()
.threadPoolName("orderedDtpExecutor")
.threadFactory("test-ordered")
.corePoolSize(4)
.maximumPoolSize(4)
.queueCapacity(2000)
.ordered(true)
.buildDynamic();
.buildOrdered();
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建线程池
* scheduled,适用于处理定时任务场景,具体参数可以看代码注释
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
@Bean
public ScheduledExecutorService scheduledDtpExecutor() {
return ThreadPoolBuilder.newBuilder()
.threadPoolName("scheduledDtpExecutor")
.corePoolSize(2)
.threadFactory("test-scheduled")
.rejectedExecutionHandler(ABORT_POLICY.getName())
.rejectedExecutionHandler(CALLER_RUNS_POLICY.getName())
.buildScheduled();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import java.util.concurrent.TimeUnit;

import static org.dromara.dynamictp.common.em.QueueTypeEnum.MEMORY_SAFE_LINKED_BLOCKING_QUEUE;
import static org.dromara.dynamictp.common.em.RejectedTypeEnum.ABORT_POLICY;
import static org.dromara.dynamictp.common.em.RejectedTypeEnum.CALLER_RUNS_POLICY;

/**
* @author Redick01
Expand All @@ -41,7 +41,7 @@
public class ThreadPoolConfiguration {

/**
* 通过{@link DynamicTp} 注解定义普通juc线程池,会享受到该框架监控功能,注解名称优先级高于方法名
* 通过{@link DynamicTp} 注解定义普通juc线程池,会享受到该框架增强能力,注解名称优先级高于方法名
*
* @return 线程池实例
*/
Expand All @@ -51,14 +51,19 @@ public ThreadPoolExecutor jucThreadPoolExecutor() {
return (ThreadPoolExecutor) Executors.newFixedThreadPool(1);
}

/**
* 通过{@link DynamicTp} 注解定义spring线程池,会享受到该框架增强能力,注解名称优先级高于方法名
*
* @return 线程池实例
*/
@DynamicTp("threadPoolTaskExecutor")
@Bean
public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
return new ThreadPoolTaskExecutor();
}

/**
* 通过{@link ThreadPoolCreator} 快速创建一些简单配置的动态线程池
* 通过{@link ThreadPoolCreator} 快速创建一些简单配置的线程池,使用默认参数
* tips: 建议直接在配置中心配置就行,不用@Bean声明
*
* @return 线程池实例
Expand All @@ -69,6 +74,7 @@ public DtpExecutor dtpExecutor0() {
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
Expand All @@ -86,9 +92,8 @@ public ThreadPoolExecutor dtpExecutor1() {
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池(推荐方式),
* ioIntensive,参考tomcat线程池设计,实现了处理io密集型任务的线程池,具体参数可以看代码注释
* <p>
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池
* eager,参考tomcat线程池设计,适用于处理io密集型任务场景,具体参数可以看代码注释
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
Expand All @@ -104,25 +109,36 @@ public DtpExecutor eagerDtpExecutor() {
.buildDynamic();
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池
* ordered,适用于处理有序任务场景,任务要实现Ordered接口,具体参数可以看代码注释
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
@Bean
public OrderedDtpExecutor orderedDtpExecutor() {
return (OrderedDtpExecutor) ThreadPoolBuilder.newBuilder()
return ThreadPoolBuilder.newBuilder()
.threadPoolName("orderedDtpExecutor")
.threadFactory("test-ordered")
.corePoolSize(4)
.maximumPoolSize(4)
.queueCapacity(2000)
.ordered(true)
.buildDynamic();
.buildOrdered();
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建线程池
* scheduled,适用于处理定时任务场景,具体参数可以看代码注释
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
@Bean
public ScheduledExecutorService scheduledDtpExecutor() {
return ThreadPoolBuilder.newBuilder()
.threadPoolName("scheduledDtpExecutor")
.corePoolSize(2)
.threadFactory("test-scheduled")
.rejectedExecutionHandler(ABORT_POLICY.getName())
.rejectedExecutionHandler(CALLER_RUNS_POLICY.getName())
.buildScheduled();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import java.util.concurrent.TimeUnit;

import static org.dromara.dynamictp.common.em.QueueTypeEnum.MEMORY_SAFE_LINKED_BLOCKING_QUEUE;
import static org.dromara.dynamictp.common.em.RejectedTypeEnum.ABORT_POLICY;
import static org.dromara.dynamictp.common.em.RejectedTypeEnum.CALLER_RUNS_POLICY;

/**
* @author Redick01
Expand All @@ -41,7 +41,7 @@
public class ThreadPoolConfiguration {

/**
* 通过{@link DynamicTp} 注解定义普通juc线程池,会享受到该框架监控功能,注解名称优先级高于方法名
* 通过{@link DynamicTp} 注解定义普通juc线程池,会享受到该框架增强能力,注解名称优先级高于方法名
*
* @return 线程池实例
*/
Expand All @@ -51,14 +51,19 @@ public ThreadPoolExecutor jucThreadPoolExecutor() {
return (ThreadPoolExecutor) Executors.newFixedThreadPool(1);
}

/**
* 通过{@link DynamicTp} 注解定义spring线程池,会享受到该框架增强能力,注解名称优先级高于方法名
*
* @return 线程池实例
*/
@DynamicTp("threadPoolTaskExecutor")
@Bean
public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
return new ThreadPoolTaskExecutor();
}

/**
* 通过{@link ThreadPoolCreator} 快速创建一些简单配置的动态线程池
* 通过{@link ThreadPoolCreator} 快速创建一些简单配置的线程池,使用默认参数
* tips: 建议直接在配置中心配置就行,不用@Bean声明
*
* @return 线程池实例
Expand All @@ -69,6 +74,7 @@ public DtpExecutor dtpExecutor0() {
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
Expand All @@ -86,9 +92,8 @@ public ThreadPoolExecutor dtpExecutor1() {
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池(推荐方式),
* ioIntensive,参考tomcat线程池设计,实现了处理io密集型任务的线程池,具体参数可以看代码注释
* <p>
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池
* eager,参考tomcat线程池设计,适用于处理io密集型任务场景,具体参数可以看代码注释
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
Expand All @@ -104,25 +109,36 @@ public DtpExecutor eagerDtpExecutor() {
.buildDynamic();
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池
* ordered,适用于处理有序任务场景,任务要实现Ordered接口,具体参数可以看代码注释
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
@Bean
public OrderedDtpExecutor orderedDtpExecutor() {
return (OrderedDtpExecutor) ThreadPoolBuilder.newBuilder()
return ThreadPoolBuilder.newBuilder()
.threadPoolName("orderedDtpExecutor")
.threadFactory("test-ordered")
.corePoolSize(4)
.maximumPoolSize(4)
.queueCapacity(2000)
.ordered(true)
.buildDynamic();
.buildOrdered();
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建线程池
* scheduled,适用于处理定时任务场景,具体参数可以看代码注释
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
@Bean
public ScheduledExecutorService scheduledDtpExecutor() {
return ThreadPoolBuilder.newBuilder()
.threadPoolName("scheduledDtpExecutor")
.corePoolSize(2)
.threadFactory("test-scheduled")
.rejectedExecutionHandler(ABORT_POLICY.getName())
.rejectedExecutionHandler(CALLER_RUNS_POLICY.getName())
.buildScheduled();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import java.util.concurrent.TimeUnit;

import static org.dromara.dynamictp.common.em.QueueTypeEnum.MEMORY_SAFE_LINKED_BLOCKING_QUEUE;
import static org.dromara.dynamictp.common.em.RejectedTypeEnum.ABORT_POLICY;
import static org.dromara.dynamictp.common.em.RejectedTypeEnum.CALLER_RUNS_POLICY;

/**
* @author Redick01
Expand All @@ -41,7 +41,7 @@
public class ThreadPoolConfiguration {

/**
* 通过{@link DynamicTp} 注解定义普通juc线程池,会享受到该框架监控功能,注解名称优先级高于方法名
* 通过{@link DynamicTp} 注解定义普通juc线程池,会享受到该框架增强能力,注解名称优先级高于方法名
*
* @return 线程池实例
*/
Expand All @@ -51,14 +51,19 @@ public ThreadPoolExecutor jucThreadPoolExecutor() {
return (ThreadPoolExecutor) Executors.newFixedThreadPool(1);
}

/**
* 通过{@link DynamicTp} 注解定义spring线程池,会享受到该框架增强能力,注解名称优先级高于方法名
*
* @return 线程池实例
*/
@DynamicTp("threadPoolTaskExecutor")
@Bean
public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
return new ThreadPoolTaskExecutor();
}

/**
* 通过{@link ThreadPoolCreator} 快速创建一些简单配置的动态线程池
* 通过{@link ThreadPoolCreator} 快速创建一些简单配置的线程池,使用默认参数
* tips: 建议直接在配置中心配置就行,不用@Bean声明
*
* @return 线程池实例
Expand All @@ -69,6 +74,7 @@ public DtpExecutor dtpExecutor0() {
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
Expand All @@ -86,9 +92,8 @@ public ThreadPoolExecutor dtpExecutor1() {
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池(推荐方式),
* ioIntensive,参考tomcat线程池设计,实现了处理io密集型任务的线程池,具体参数可以看代码注释
* <p>
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池
* eager,参考tomcat线程池设计,适用于处理io密集型任务场景,具体参数可以看代码注释
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
Expand All @@ -104,25 +109,36 @@ public DtpExecutor eagerDtpExecutor() {
.buildDynamic();
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建动态线程池
* ordered,适用于处理有序任务场景,任务要实现Ordered接口,具体参数可以看代码注释
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
@Bean
public OrderedDtpExecutor orderedDtpExecutor() {
return (OrderedDtpExecutor) ThreadPoolBuilder.newBuilder()
return ThreadPoolBuilder.newBuilder()
.threadPoolName("orderedDtpExecutor")
.threadFactory("test-ordered")
.corePoolSize(4)
.maximumPoolSize(4)
.queueCapacity(2000)
.ordered(true)
.buildDynamic();
.buildOrdered();
}

/**
* 通过{@link ThreadPoolBuilder} 设置详细参数创建线程池
* scheduled,适用于处理定时任务场景,具体参数可以看代码注释
* tips: 建议直接在配置中心配置就行,不用@Bean声明
* @return 线程池实例
*/
@Bean
public ScheduledExecutorService scheduledDtpExecutor() {
return ThreadPoolBuilder.newBuilder()
.threadPoolName("scheduledDtpExecutor")
.corePoolSize(2)
.threadFactory("test-scheduled")
.rejectedExecutionHandler(ABORT_POLICY.getName())
.rejectedExecutionHandler(CALLER_RUNS_POLICY.getName())
.buildScheduled();
}
}
Loading

0 comments on commit f33bb59

Please sign in to comment.