From f9f197935a0e17fe50e4dd716b645e8d83a8e9dc Mon Sep 17 00:00:00 2001 From: dongfeng Date: Mon, 11 Nov 2024 19:33:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Doa=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?cpu=E8=BF=87=E9=AB=98=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oa/core/provider/service/AbstractOaBlend.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/sms4j-oa-plugin/sms4j-oa-core/src/main/java/org/dromara/oa/core/provider/service/AbstractOaBlend.java b/sms4j-oa-plugin/sms4j-oa-core/src/main/java/org/dromara/oa/core/provider/service/AbstractOaBlend.java index cb7eb16a..fd197671 100644 --- a/sms4j-oa-plugin/sms4j-oa-core/src/main/java/org/dromara/oa/core/provider/service/AbstractOaBlend.java +++ b/sms4j-oa-plugin/sms4j-oa-core/src/main/java/org/dromara/oa/core/provider/service/AbstractOaBlend.java @@ -2,6 +2,7 @@ package org.dromara.oa.core.provider.service; import cn.hutool.core.util.StrUtil; import lombok.Getter; +import lombok.extern.slf4j.Slf4j; import org.dromara.oa.api.OaCallBack; import org.dromara.oa.api.OaSender; import org.dromara.oa.comm.config.OaSupplierConfig; @@ -19,6 +20,7 @@ import java.util.concurrent.PriorityBlockingQueue; * @author dongfeng * 2023-10-22 21:03 */ +@Slf4j public abstract class AbstractOaBlend implements OaSender { @Getter @@ -57,12 +59,16 @@ public abstract class AbstractOaBlend implements OaS pool.execute(() -> { Thread.currentThread().setName("oa-priorityQueueMap-thread"); while (!Thread.currentThread().isInterrupted()) { - Request request = priorityQueueMap.poll(); - if (!Objects.isNull(request)) { + try{ + Request request = priorityQueueMap.take() ; pool.execute(() -> { - System.out.println("优先级为"+request.getPriority()+"已发送"); + log.info("优先级为"+request.getPriority()+"已发送"); sender(request, request.getMessageType()); }); + }catch (InterruptedException e){ + log.info("[Dispatcher]-priorityQueueMap-task-dispatcher has been interrupt to close."); + Thread.currentThread().interrupt(); + break; } } });