diff --git a/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractBlockingQueueThread.java b/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractBlockingQueueThread.java index ff908b8f2..fd85784dd 100644 --- a/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractBlockingQueueThread.java +++ b/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractBlockingQueueThread.java @@ -36,7 +36,7 @@ public void put(T t) { this.queue.put(t); } catch (InterruptedException e) { - currentThread().interrupt(); + Thread.currentThread().interrupt(); } catch (Exception e) { this.log.error("{} put Object error, param: {}", this.getClass().toString(), t, e); diff --git a/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractDynamicTimer.java b/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractDynamicTimer.java index 67e71d193..404162957 100644 --- a/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractDynamicTimer.java +++ b/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractDynamicTimer.java @@ -21,12 +21,16 @@ import java.util.concurrent.TimeUnit; import org.ballcat.common.lock.JavaReentrantLock; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author lingting 2023-04-22 10:39 */ @SuppressWarnings("java:S1066") -public abstract class AbstractDynamicTimer extends AbstractThreadContextComponent { +public abstract class AbstractDynamicTimer extends Thread { + + protected final Logger log = LoggerFactory.getLogger(getClass()); private final JavaReentrantLock lock = new JavaReentrantLock(); @@ -48,6 +52,13 @@ protected int defaultCapacity() { */ protected abstract long sleepTime(T t); + protected void init() { + } + + public boolean isRun() { + return !isInterrupted() && isAlive(); + } + public void put(T t) { if (t == null) { return; @@ -63,7 +74,7 @@ public void put(T t) { interrupt(); } catch (Exception e) { - this.log.error("{} put error, param: {}", this.getClass().toString(), t, e); + this.log.error("{} put error, param: {}", this.getClass(), t, e); } } @@ -117,11 +128,11 @@ protected T pool() { protected abstract void process(T t); protected void error(Exception e) { - this.log.error("类: {}; 线程: {}; 运行异常! ", getSimpleName(), getId(), e); + this.log.error("类: {}; 线程: {}; 运行异常! ", getClass().getName(), getId(), e); } protected void shutdown() { - this.log.warn("类: {}; 线程: {}; 被中断! 剩余数据: {}", getSimpleName(), getId(), this.queue.size()); + this.log.warn("类: {}; 线程: {}; 被中断! 剩余数据: {}", getClass().getName(), getId(), this.queue.size()); } } diff --git a/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractQueueThread.java b/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractQueueThread.java index 958600678..dba37bd14 100644 --- a/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractQueueThread.java +++ b/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractQueueThread.java @@ -19,6 +19,8 @@ import java.util.ArrayList; import java.util.List; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.util.CollectionUtils; /** @@ -26,7 +28,9 @@ * * @author lingting 2021/3/2 15:07 */ -public abstract class AbstractQueueThread extends AbstractThreadContextComponent { +public abstract class AbstractQueueThread extends Thread { + + protected final Logger log = LoggerFactory.getLogger(getClass()); /** * 默认缓存数据数量 @@ -67,6 +71,13 @@ public long getPollTimeout() { return POLL_TIMEOUT_MS; } + public boolean isRun() { + return !isInterrupted() && isAlive(); + } + + protected void init() { + } + /** * 往队列插入数据 * @param e 数据 @@ -131,9 +142,9 @@ public void run() { error(e, list); } // Throwable 异常直接结束. 这里捕获用来保留信息. 方便排查问题 - catch (Throwable t) { - this.log.error("线程队列运行异常!", t); - throw t; + catch (Throwable throwable) { + this.log.error("线程队列运行异常!", throwable); + throw throwable; } } } diff --git a/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractTimer.java b/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractTimer.java index f244c5050..942ec4c9a 100644 --- a/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractTimer.java +++ b/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractTimer.java @@ -18,10 +18,15 @@ import java.util.concurrent.TimeUnit; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * @author lingting 2022/6/27 20:26 */ -public abstract class AbstractTimer extends AbstractThreadContextComponent { +public abstract class AbstractTimer extends Thread { + + protected final Logger log = LoggerFactory.getLogger(getClass()); /** * 获取超时时间, 单位: 毫秒 @@ -35,6 +40,13 @@ public long getTimeout() { */ protected abstract void process(); + protected void init() { + } + + public boolean isRun() { + return !isInterrupted() && isAlive(); + } + /** * 线程被中断触发. */ diff --git a/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractThreadContextComponent.java b/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/ThreadContextComponent.java similarity index 71% rename from common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractThreadContextComponent.java rename to common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/ThreadContextComponent.java index 8b7aeaeb7..fcdafd5c6 100644 --- a/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/AbstractThreadContextComponent.java +++ b/common/ballcat-common-core/src/main/java/org/ballcat/common/core/thread/ThreadContextComponent.java @@ -22,37 +22,27 @@ /** * @author lingting 2023-04-22 10:40 */ -public abstract class AbstractThreadContextComponent extends Thread implements ContextComponent { +public abstract class ThreadContextComponent implements ContextComponent { protected final Logger log = org.slf4j.LoggerFactory.getLogger(getClass()); - protected void init() { + private final Thread thread; - } - - public boolean isRun() { - return !isInterrupted() && isAlive(); + protected ThreadContextComponent(Thread thread) { + this.thread = thread; } @Override public void onApplicationStart() { - setName(getClass().getSimpleName()); - if (!isAlive()) { - start(); + if (!this.thread.isAlive()) { + this.thread.start(); } } @Override public void onApplicationStop() { - this.log.warn("{} 线程: {}; 开始关闭!", getClass().getSimpleName(), getId()); - interrupt(); - } - - public String getSimpleName() { - return getClass().getSimpleName(); + this.log.warn("{} 线程: {}; 开始关闭!", getClass().getSimpleName(), this.thread.getId()); + this.thread.interrupt(); } - @Override - public abstract void run(); - } diff --git a/common/ballcat-common-core/src/test/java/org/ballcat/common/core/thread/AbstractDynamicTimerTest.java b/common/ballcat-common-core/src/test/java/org/ballcat/common/core/thread/AbstractDynamicTimerTest.java index 0cf586873..914c32fe1 100644 --- a/common/ballcat-common-core/src/test/java/org/ballcat/common/core/thread/AbstractDynamicTimerTest.java +++ b/common/ballcat-common-core/src/test/java/org/ballcat/common/core/thread/AbstractDynamicTimerTest.java @@ -43,12 +43,12 @@ class AbstractDynamicTimerTest { @BeforeEach void before() { this.timer = new DynamicTimer(); - this.timer.onApplicationStart(); + this.timer.start(); } @AfterEach void after() { - this.timer.onApplicationStop(); + this.timer.interrupt(); } @Test