mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-12 12:37:55 +00:00
(improvement)(chat) add timecost aspect (#339)
This commit is contained in:
@@ -0,0 +1,14 @@
|
|||||||
|
package com.tencent.supersonic.chat.service;
|
||||||
|
|
||||||
|
import java.lang.annotation.Documented;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
|
@Target({ElementType.PARAMETER, ElementType.METHOD})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
public @interface TimeCost {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package com.tencent.supersonic.chat.service;
|
||||||
|
|
||||||
|
import com.tencent.supersonic.chat.api.pojo.response.QueryResult;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.aspectj.lang.ProceedingJoinPoint;
|
||||||
|
import org.aspectj.lang.annotation.Around;
|
||||||
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
|
import org.aspectj.lang.annotation.Pointcut;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@Aspect
|
||||||
|
public class TimeCostAOP {
|
||||||
|
|
||||||
|
@Pointcut("@annotation(com.tencent.supersonic.chat.service.TimeCost)")
|
||||||
|
private void timeCostAdvicePointcut() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Around("timeCostAdvicePointcut()")
|
||||||
|
public Object timeCostAdvice(ProceedingJoinPoint joinPoint) throws Throwable {
|
||||||
|
log.info("begin to add time cost!");
|
||||||
|
Long startTime = System.currentTimeMillis();
|
||||||
|
Object object = joinPoint.proceed();
|
||||||
|
if (object instanceof QueryResult) {
|
||||||
|
QueryResult queryResult = (QueryResult) object;
|
||||||
|
queryResult.setQueryTimeCost(System.currentTimeMillis() - startTime);
|
||||||
|
return queryResult;
|
||||||
|
}
|
||||||
|
return object;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -35,6 +35,7 @@ import com.tencent.supersonic.chat.service.ChatService;
|
|||||||
import com.tencent.supersonic.chat.service.QueryService;
|
import com.tencent.supersonic.chat.service.QueryService;
|
||||||
import com.tencent.supersonic.chat.service.SemanticService;
|
import com.tencent.supersonic.chat.service.SemanticService;
|
||||||
import com.tencent.supersonic.chat.service.StatisticsService;
|
import com.tencent.supersonic.chat.service.StatisticsService;
|
||||||
|
import com.tencent.supersonic.chat.service.TimeCost;
|
||||||
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
||||||
import com.tencent.supersonic.chat.utils.SolvedQueryManager;
|
import com.tencent.supersonic.chat.utils.SolvedQueryManager;
|
||||||
import com.tencent.supersonic.common.pojo.DateConf;
|
import com.tencent.supersonic.common.pojo.DateConf;
|
||||||
@@ -208,8 +209,8 @@ public class QueryServiceImpl implements QueryService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@TimeCost
|
||||||
public QueryResult performExecution(ExecuteQueryReq queryReq) throws Exception {
|
public QueryResult performExecution(ExecuteQueryReq queryReq) throws Exception {
|
||||||
Long executeTime = System.currentTimeMillis();
|
|
||||||
ChatParseDO chatParseDO = chatService.getParseInfo(queryReq.getQueryId(),
|
ChatParseDO chatParseDO = chatService.getParseInfo(queryReq.getQueryId(),
|
||||||
queryReq.getParseId());
|
queryReq.getParseId());
|
||||||
ChatQueryDO chatQueryDO = chatService.getLastQuery(queryReq.getChatId());
|
ChatQueryDO chatQueryDO = chatService.getLastQuery(queryReq.getChatId());
|
||||||
@@ -249,7 +250,6 @@ public class QueryServiceImpl implements QueryService {
|
|||||||
} else {
|
} else {
|
||||||
chatService.deleteChatQuery(queryReq.getQueryId());
|
chatService.deleteChatQuery(queryReq.getQueryId());
|
||||||
}
|
}
|
||||||
queryResult.setQueryTimeCost(System.currentTimeMillis() - executeTime);
|
|
||||||
return queryResult;
|
return queryResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -334,6 +334,7 @@ public class QueryServiceImpl implements QueryService {
|
|||||||
//mainly used for executing after revising filters,for example:"fans_cnt>=100000"->"fans_cnt>500000",
|
//mainly used for executing after revising filters,for example:"fans_cnt>=100000"->"fans_cnt>500000",
|
||||||
//"style='流行'"->"style in ['流行','爱国']"
|
//"style='流行'"->"style in ['流行','爱国']"
|
||||||
@Override
|
@Override
|
||||||
|
@TimeCost
|
||||||
public QueryResult executeDirectQuery(QueryDataReq queryData, User user) throws SqlParseException {
|
public QueryResult executeDirectQuery(QueryDataReq queryData, User user) throws SqlParseException {
|
||||||
ChatParseDO chatParseDO = chatService.getParseInfo(queryData.getQueryId(),
|
ChatParseDO chatParseDO = chatService.getParseInfo(queryData.getQueryId(),
|
||||||
queryData.getParseId());
|
queryData.getParseId());
|
||||||
|
|||||||
Reference in New Issue
Block a user