mirror of https://github.com/longtai-cn/hippo4j
parent
3f8df895e0
commit
3ed2b32074
@ -0,0 +1,35 @@
|
||||
package com.github.dynamic.threadpool.starter.alarm;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 报警控制实体.
|
||||
*
|
||||
* @author chen.ma
|
||||
* @date 2021/10/28 22:15
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
public class AlarmControlDTO {
|
||||
|
||||
/**
|
||||
* 线程池 Id
|
||||
*/
|
||||
private String threadPool;
|
||||
|
||||
/**
|
||||
* 推送报警类型
|
||||
*/
|
||||
private MessageTypeEnum typeEnum;
|
||||
|
||||
/**
|
||||
* 构建线程池报警标识
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String buildPk() {
|
||||
return threadPool + "_" + typeEnum;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package com.github.dynamic.threadpool.starter.alarm;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.google.common.cache.Cache;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 报警控制组件.
|
||||
*
|
||||
* @author chen.ma
|
||||
* @date 2021/10/28 21:24
|
||||
*/
|
||||
public class AlarmControlHandler {
|
||||
|
||||
private final Cache<String, String> cache;
|
||||
|
||||
public AlarmControlHandler(long alarmInterval) {
|
||||
cache = CacheBuilder.newBuilder()
|
||||
.expireAfterWrite(alarmInterval, TimeUnit.MINUTES)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 控制消息推送报警频率.
|
||||
*
|
||||
* @param alarmControl
|
||||
* @return
|
||||
*/
|
||||
public boolean isSend(AlarmControlDTO alarmControl) {
|
||||
String pkId = cache.getIfPresent(alarmControl.buildPk());
|
||||
|
||||
if (StrUtil.isBlank(pkId)) {
|
||||
// val 无意义
|
||||
cache.put(alarmControl.buildPk(), IdUtil.simpleUUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in new issue