You've already forked FrameTour-BE
逻辑修正
This commit is contained in:
@ -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()) {
|
||||
|
Reference in New Issue
Block a user