You've already forked FrameTour-BE
2
This commit is contained in:
@@ -49,7 +49,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.aliyuncs.DefaultAcsClient;
|
||||
import com.aliyuncs.IAcsClient;
|
||||
@@ -87,7 +86,12 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
||||
private SourceMapper sourceMapper;
|
||||
@Autowired
|
||||
private OrderBiz orderBiz;
|
||||
private SlidingWindowRateLimiter limiter = new SlidingWindowRateLimiter(5); // 阿里云人脸检索限制qps=5
|
||||
// 阿里云人脸检索限制qps=2
|
||||
private final SlidingWindowRateLimiter addEntityLimiter = new SlidingWindowRateLimiter(1);
|
||||
// 阿里云人脸检索限制qps=5
|
||||
private final SlidingWindowRateLimiter searchFaceLimiter = new SlidingWindowRateLimiter(4);
|
||||
private final SlidingWindowRateLimiter deleteDbLimiter = new SlidingWindowRateLimiter(1);
|
||||
private final SlidingWindowRateLimiter deleteEntityLimiter = new SlidingWindowRateLimiter(1);
|
||||
|
||||
private IAcsClient getClient() {
|
||||
DefaultProfile profile = DefaultProfile.getProfile(
|
||||
@@ -163,6 +167,10 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
||||
request.setLimit(100);
|
||||
// request.setQualityScoreThreshold(60f);
|
||||
FaceDetectLog log = FaceDetectLog.quickCreate("预留字段", request);
|
||||
try {
|
||||
searchFaceLimiter.aquire();
|
||||
} catch (InterruptedException ignored) {
|
||||
}
|
||||
try {
|
||||
SearchFaceResponse response = client.getAcsResponse(request);
|
||||
log.fillResponse(response);
|
||||
@@ -197,7 +205,7 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
||||
.collect(Collectors.toList());
|
||||
log.matchLocalRecord(records);
|
||||
List<Long> faceSampleIds = records.stream()
|
||||
.filter(record -> record.getScore() > 0.6)
|
||||
.filter(record -> record.getScore() > 0.525F)
|
||||
.map(MatchLocalRecord::getFaceSampleId)
|
||||
.collect(Collectors.toList());
|
||||
respVo.setFirstMatchRate(matchList.get(0).getFaceItems().get(0).getScore());
|
||||
@@ -235,9 +243,8 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
||||
request.setEntityId(entityId);
|
||||
IAcsClient client = getClient();
|
||||
try {
|
||||
limiter.allowRequest();
|
||||
} catch (InterruptedException e) {
|
||||
return null;
|
||||
addEntityLimiter.aquire();
|
||||
} catch (InterruptedException ignored) {
|
||||
}
|
||||
try {
|
||||
client.getAcsResponse(request);
|
||||
@@ -256,7 +263,7 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
||||
respVo.setScore(acsResponse.getData().getQualitieScore());
|
||||
return respVo;
|
||||
} catch (ClientException e) {
|
||||
log.error("addFaceEntity", e);
|
||||
log.error("addFace", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -283,6 +290,10 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
||||
DeleteFaceEntityRequest request = new DeleteFaceEntityRequest();
|
||||
request.setDbName(scenicId.toString());
|
||||
request.setEntityId(entityId);
|
||||
try {
|
||||
deleteEntityLimiter.aquire();
|
||||
} catch (InterruptedException ignored) {
|
||||
}
|
||||
try {
|
||||
client.getAcsResponse(request);
|
||||
} catch (ClientException e) {
|
||||
@@ -310,9 +321,8 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
||||
deleteFaceEntityRequest.setDbName(entity.getDbName());
|
||||
deleteFaceEntityRequest.setEntityId(entity.getEntityId());
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
deleteEntityLimiter.aquire();
|
||||
} catch (InterruptedException ignored) {
|
||||
}
|
||||
try {
|
||||
client.getAcsResponse(deleteFaceEntityRequest);
|
||||
@@ -323,6 +333,10 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
||||
}
|
||||
DeleteFaceDbRequest deleteFaceDbRequest = new DeleteFaceDbRequest();
|
||||
deleteFaceDbRequest.setName(dbName);
|
||||
try {
|
||||
deleteDbLimiter.aquire();
|
||||
} catch (InterruptedException ignored) {
|
||||
}
|
||||
client.getAcsResponse(deleteFaceDbRequest);
|
||||
removeFaceDBCache(dbName);
|
||||
} catch (ClientException e) {
|
||||
|
@@ -545,7 +545,7 @@ public class TaskTaskServiceImpl implements TaskService {
|
||||
}
|
||||
ScenicEntity scenic = scenicRepository.getScenic(item.getScenicId());
|
||||
String title = "您在【" + scenic.getName() + "】的专属影像";
|
||||
String page = "pages/videoSynthesis/buy?scenicId=" + item.getScenicId() + "&faceId=" + item.getFaceId() + "&id=" + item.getVideoId();
|
||||
String page = "pages/videoSynthesis/index?scenicId=" + item.getScenicId() + "&faceId=" + item.getFaceId();
|
||||
/**
|
||||
* 视频名称 {{thing1.DATA}}
|
||||
* 生成时间 {{time4.DATA}}
|
||||
|
Reference in New Issue
Block a user