说明:1、api预警切点增加当前接口请求次数,每天清零

2、待实现把超过阈值的接口添加到预警表中
pull/254/head
xjs 4 years ago
parent 60f76ee94a
commit a59963be41

@ -21,6 +21,9 @@ public class ApiRecord implements Serializable {
/** api地址 */
private String apiUrl;
/** api每天请求次数 */
private Long dayCount;
/**
*
*/
@ -99,4 +102,12 @@ public class ApiRecord implements Serializable {
public void setRequestTime(Integer requestTime) {
this.requestTime = requestTime;
}
public Long getDayCount() {
return dayCount;
}
public void setDayCount(Long dayCount) {
this.dayCount = dayCount;
}
}

@ -69,8 +69,8 @@ module.exports = {
],
},
chainWebpack(config) {
config.plugins.delete('preload') // TODO: need test
config.plugins.delete('prefetch') // TODO: need test
config.plugins.delete('preload')
config.plugins.delete('prefetch')
// set svg-sprite-loader
config.module

@ -21,6 +21,7 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
log.info("start insert fill ....");
//this.setFieldValByName("createTime", new Date(), metaObject);
this.strictInsertFill(metaObject, "createTime", Date.class,new Date()); // 起始版本 3.3.3(推荐)
this.strictInsertFill(metaObject, "updateTime", Date.class,new Date());
}
@Override

@ -1,8 +1,10 @@
package com.xjs.utils;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
import java.util.Date;
/**
* @author xiejs
@ -17,4 +19,12 @@ class ChineseUtilTest {
System.out.println(b);
}
@Test
public void test2() {
long between = DateUtil
.between(new Date(), DateUtil.parseDate("2021-12-31 23:59:59").toJdkDate(), DateUnit.DAY);
System.out.println(between);
}
}

@ -1,6 +1,7 @@
package com.xjs.common.aop;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.ruoyi.common.core.domain.R;
import com.xjs.business.warning.RemoteWarningCRUDFeign;
@ -20,6 +21,7 @@ import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.List;
import java.util.Optional;
@ -142,12 +144,29 @@ public class ApiLogAspect {
if (CollUtil.isEmpty(data)) {
//设置初始请求次数
apiRecord.setTotalCount(1L);
apiRecord.setDayCount(1L);
remoteWarningCRUDFeign.saveApiRecord(apiRecord);
}else {
ApiRecord haveApiRecord = data.get(0);
haveApiRecord.setRequestTime((int) between);
haveApiRecord.setTotalCount(haveApiRecord.getTotalCount()+1L);
//统计当前的请求次数,隔天清零
haveApiRecord.setDayCount(haveApiRecord.getDayCount()+1L);
Date updateTime = haveApiRecord.getUpdateTime();
//当前时间和最后一次修改时间间隔天数超过1 就清零)
long compareTime = DateUtil.between(new Date(), updateTime, DateUnit.DAY);
if (compareTime > 0) {
haveApiRecord.setDayCount(0L);
}
remoteWarningCRUDFeign.updateApiRecord(haveApiRecord);
//判断接口请求是否超过阈值
if (haveApiRecord.getDayCount() > haveApiRecord.getLimitCount()) {
//TODO 把记录添加到预警表中
}
}
}
}

@ -55,6 +55,9 @@ public class ApiRecord implements Serializable {
@Excel(name = "api限制请求次数每天")
private Long limitCount;
@Excel(name = "api每天请求次数")
private Long dayCount;
@Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
@TableField(fill = FieldFill.INSERT)
private Date createTime;

Loading…
Cancel
Save