REQ-3345: 添加限流
This commit is contained in:
parent
30975d114b
commit
8483b955b2
@ -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());
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user