diff --git a/im-center-server/src/main/java/cn/axzo/im/gateway/DingDingMsgApiGateway.java b/im-center-server/src/main/java/cn/axzo/im/gateway/DingDingMsgApiGateway.java index 80cdc07..2716f4b 100644 --- a/im-center-server/src/main/java/cn/axzo/im/gateway/DingDingMsgApiGateway.java +++ b/im-center-server/src/main/java/cn/axzo/im/gateway/DingDingMsgApiGateway.java @@ -9,6 +9,12 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.RejectedExecutionException; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + @Service("dingDingMsgApiGateway") @Slf4j @RequiredArgsConstructor @@ -16,10 +22,22 @@ public class DingDingMsgApiGateway { private final DingDingMsgApi dingDingMsgApi; + private final ExecutorService executor = new ThreadPoolExecutor(2, 2, + 0L, TimeUnit.MILLISECONDS, + new ArrayBlockingQueue<>(10)); + + public void sendMsg(DingTalkMsgTypeEnum msgType, String title, String text, String dingDingScene) { + try { + executor.execute(() -> sendMsgImpl(msgType, title, text, dingDingScene)); + } catch (Exception e) { + log.warn("DingDingMsgApiGateway-sendMsg Exception, msgType:{}, title:{}, text:{}, dingDingScene:{}", msgType, title, text, dingDingScene, e); + } + } + /** * 发送消息 */ - public void sendMsg(DingTalkMsgTypeEnum msgType, String title, String text, String dingDingScene) { + private void sendMsgImpl(DingTalkMsgTypeEnum msgType, String title, String text, String dingDingScene) { DingDingSendRebootGroupMsgReq req = new DingDingSendRebootGroupMsgReq(); req.setMsgType(msgType); req.setDingDingJson(new SampleMarkdown(title, text).toJson());