REQ-3345: 添加限流

This commit is contained in:
yanglin 2025-02-08 09:35:43 +08:00
parent 30975d114b
commit 8483b955b2

View File

@ -9,6 +9,12 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; 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") @Service("dingDingMsgApiGateway")
@Slf4j @Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
@ -16,10 +22,22 @@ public class DingDingMsgApiGateway {
private final DingDingMsgApi dingDingMsgApi; 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(); DingDingSendRebootGroupMsgReq req = new DingDingSendRebootGroupMsgReq();
req.setMsgType(msgType); req.setMsgType(msgType);
req.setDingDingJson(new SampleMarkdown(title, text).toJson()); req.setDingDingJson(new SampleMarkdown(title, text).toJson());