From d4fcc62ba921141bbe411e0e5a6b5acc1f25ed3e Mon Sep 17 00:00:00 2001
From: opensnail <598092184@qq.com>
Date: Sun, 8 Sep 2024 08:53:16 +0800
Subject: [PATCH] =?UTF-8?q?feat:(1.2.0-beta1):=201.=20=E4=BC=98=E5=8C=96?=
=?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E7=BA=BF=E7=A8=8B=E6=B1=A0=EF=BC=8C?=
=?UTF-8?q?=E5=BD=93=E8=8E=B7=E5=8F=96=E7=BC=93=E5=AD=98=E7=BA=BF=E7=A8=8B?=
=?UTF-8?q?=E6=B1=A0=E6=97=B6=E6=89=8D=E8=AE=BE=E7=BD=AE=E5=B9=B6=E8=A1=8C?=
=?UTF-8?q?=E5=BA=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
.../client/job/core/cache/ThreadPoolCache.java | 14 +++++++++++---
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/pom.xml b/pom.xml
index 5ab549448..8df6e69ad 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
17
17
17
- 1.1.1
+ 1.2.0-beta1
4.1.94.Final
5.8.25
3.5.7
diff --git a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/cache/ThreadPoolCache.java b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/cache/ThreadPoolCache.java
index e22d96512..ac6a265c7 100644
--- a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/cache/ThreadPoolCache.java
+++ b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/cache/ThreadPoolCache.java
@@ -24,13 +24,21 @@ public class ThreadPoolCache {
public static ThreadPoolExecutor createThreadPool(Long taskBatchId, int parallelNum) {
if (CACHE_THREAD_POOL.containsKey(taskBatchId)) {
- return CACHE_THREAD_POOL.get(taskBatchId);
+ ThreadPoolExecutor cacheThreadPool = CACHE_THREAD_POOL.get(taskBatchId);
+ if (cacheThreadPool.getCorePoolSize() == parallelNum) {
+ return cacheThreadPool;
+ }
+
+ // 若能执行到这里只有分片任务(静态分片、MAP、MapReduce)才会需要多线程支持
+ cacheThreadPool.setCorePoolSize(parallelNum);
+ cacheThreadPool.setMaximumPoolSize(parallelNum);
+ return cacheThreadPool;
}
Supplier supplier = () -> {
-
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
- parallelNum, parallelNum, 10, TimeUnit.SECONDS, new LinkedBlockingQueue<>(),
+ // 默认情况先只设置一个线程, 只有分片任务(静态分片、MAP、MapReduce)才会需要多线程支持
+ 1, 1, 10, TimeUnit.SECONDS, new LinkedBlockingQueue<>(),
new CustomizableThreadFactory(MessageFormat.format("snail-job-job-{0}-", taskBatchId)));
threadPoolExecutor.allowCoreThreadTimeOut(true);
return threadPoolExecutor;