You've already forked FrameTour-BE
fix(face): 优化人脸匹配流程中的拼图模板生成逻辑
- 仅在新增人脸时异步生成拼图模板 - 避免重复生成已存在的人脸拼图模板 - 提升人脸匹配服务的执行效率
This commit is contained in:
@@ -36,11 +36,13 @@ import com.ycwl.basic.service.task.TaskFaceService;
|
||||
import com.ycwl.basic.service.task.TaskService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -97,9 +99,9 @@ public class FaceMatchingOrchestrator {
|
||||
@Autowired
|
||||
private IPuzzleGenerateService puzzleGenerateService;
|
||||
@Autowired
|
||||
private PuzzleGenerationRecordMapper puzzleGenerationRecordMapper;
|
||||
@Autowired
|
||||
private TaskStatusBiz taskStatusBiz;
|
||||
@Autowired
|
||||
private RedisTemplate<String, String> redisTemplate;
|
||||
|
||||
/**
|
||||
* 编排人脸匹配的完整流程
|
||||
@@ -356,6 +358,13 @@ public class FaceMatchingOrchestrator {
|
||||
* 在人脸匹配完成后,异步为该景区的所有启用的拼图模板生成图片
|
||||
*/
|
||||
private void asyncGeneratePuzzleTemplate(Long scenicId, Long faceId, Long memberId) {
|
||||
if (redisTemplate.hasKey("puzzle_generated:face:" + faceId)) {
|
||||
return;
|
||||
}
|
||||
redisTemplate.opsForValue().set(
|
||||
"puzzle_generated:face:" + faceId,
|
||||
"1",
|
||||
60 * 10, TimeUnit.SECONDS);
|
||||
new Thread(() -> {
|
||||
try {
|
||||
log.info("开始异步生成景区拼图模板: scenicId={}, faceId={}", scenicId, faceId);
|
||||
|
||||
Reference in New Issue
Block a user