逻辑修正

This commit is contained in:
2025-03-04 16:18:31 +08:00
parent f0b8d85dcc
commit ff39208d80
2 changed files with 21 additions and 15 deletions

View File

@ -35,7 +35,9 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
@ -112,6 +114,7 @@ public class VideoPieceGetter {
// taskStatusBiz.setFaceCutStatus(task.faceId, 0);
// }
AtomicBoolean invoke = new AtomicBoolean(false);
ThreadPoolExecutor executor = new ThreadPoolExecutor(8, 16, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(32));
List<String> currentPlaceholder = new ArrayList<>();
List<FaceSampleEntity> list = faceSampleMapper.listByIds(task.getFaceSampleIds());
Collection<List<FaceSampleEntity>> collection = list.stream()
@ -124,7 +127,7 @@ public class VideoPieceGetter {
.collect(Collectors.groupingBy(FaceSampleEntity::getDeviceId))
.values();
collection.forEach(faceSampleList -> {
new Thread(() -> {
executor.execute(() -> {
faceSampleList.parallelStream().forEach(faceSample -> {
DeviceEntity device = deviceRepository.getDevice(faceSample.getDeviceId());
DeviceConfigEntity config = deviceRepository.getDeviceConfig(faceSample.getDeviceId());
@ -252,10 +255,17 @@ public class VideoPieceGetter {
}
}
});
}).start();
});
});
if (task.faceId != null) {
taskStatusBiz.setFaceCutStatus(task.faceId, 1);
try {
executor.awaitTermination(Long.MAX_VALUE, TimeUnit.SECONDS);
executor.shutdown();
} catch (InterruptedException e) {
return;
} finally {
if (task.faceId != null) {
taskStatusBiz.setFaceCutStatus(task.faceId, 1);
}
}
if (null != task.getCallback()) {
if (!invoke.get()) {