diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java index 38d9730..c3f5038 100644 --- a/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java @@ -41,6 +41,8 @@ import com.ycwl.basic.storage.adapters.IStorageAdapter; import com.ycwl.basic.storage.utils.StorageUtil; import com.ycwl.basic.task.VideoPieceGetter; import com.ycwl.basic.utils.DateUtils; +import com.ycwl.basic.utils.ratelimiter.FixedRateLimiter; +import com.ycwl.basic.utils.ratelimiter.IRateLimiter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -295,42 +297,21 @@ public class TaskFaceServiceImpl implements TaskFaceService { } Date endDate = DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -sampleStoreDay); ListFaceEntitiesRequest listFaceEntitiesRequest = new ListFaceEntitiesRequest(); + AtomicInteger count = new AtomicInteger(0); + IAcsClient client = getClient(); listFaceEntitiesRequest.setDbName(USER_FACE_DB_NAME + String.valueOf(scenicId)); - listFaceEntitiesRequest.setOrder("asc"); - listFaceEntitiesRequest.setLimit(200); - try { - AtomicInteger count = new AtomicInteger(0); - IAcsClient client = getClient(); - while (true) { - listFaceEntitiesRequest.setOffset(count.getAndIncrement()); - ListFaceEntitiesResponse listFaceEntitiesResponse = client.getAcsResponse(listFaceEntitiesRequest); - if (listFaceEntitiesResponse == null || listFaceEntitiesResponse.getData() == null || listFaceEntitiesResponse.getData().getEntities() == null || listFaceEntitiesResponse.getData().getEntities().isEmpty()) { - break; - } - listFaceEntitiesResponse.getData().getEntities().forEach(entity -> { - Date createdDate = new Date(entity.getCreatedAt()); - if (createdDate.before(endDate)) { - deleteFaceSample(scenicId, entity.getDbName(), entity.getEntityId()); - } else { - count.incrementAndGet(); - log.info("当前景区{},人脸样本:{}未过期", scenicId, entity.getEntityId()); - } - }); - } - } catch (Exception ignored) { - } - listFaceEntitiesRequest.setDbName(String.valueOf(scenicId)); + listFaceEntitiesRequest.setToken(null); listFaceEntitiesRequest.setEntityIdPrefix(""); - try { - AtomicInteger count = new AtomicInteger(0); - IAcsClient client = getClient(); - while (true) { + count.set(0); + while (true) { + try { listFaceEntitiesRequest.setOffset(count.get()); ListFaceEntitiesResponse listFaceEntitiesResponse = client.getAcsResponse(listFaceEntitiesRequest); if (listFaceEntitiesResponse == null || listFaceEntitiesResponse.getData() == null || listFaceEntitiesResponse.getData().getEntities() == null || listFaceEntitiesResponse.getData().getEntities().isEmpty()) { break; } + listFaceEntitiesRequest.setToken(listFaceEntitiesResponse.getData().getToken()); listFaceEntitiesResponse.getData().getEntities().forEach(entity -> { String entityId = entity.getEntityId(); String[] split = entityId.split("_"); @@ -348,23 +329,25 @@ public class TaskFaceServiceImpl implements TaskFaceService { log.info("当前景区{},人脸样本:{}未过期", scenicId, entity.getEntityId()); } }); + } catch (Exception e) { + log.error("当前景区{},删除人脸样本失败", scenicId, e); } - } catch (Exception ignored) { } List devices = deviceRepository.getAllDeviceByScenicId(scenicId); listFaceEntitiesRequest.setDbName(String.valueOf(scenicId)); + listFaceEntitiesRequest.setToken(null); listFaceEntitiesRequest.setOrder("asc"); devices.forEach(device -> { - AtomicInteger count = new AtomicInteger(0); + count.set(0); listFaceEntitiesRequest.setEntityIdPrefix(device.getId() + "_"); try { - IAcsClient client = getClient(); while (true) { listFaceEntitiesRequest.setOffset(count.get()); ListFaceEntitiesResponse listFaceEntitiesResponse = client.getAcsResponse(listFaceEntitiesRequest); if (listFaceEntitiesResponse == null || listFaceEntitiesResponse.getData() == null || listFaceEntitiesResponse.getData().getEntities() == null || listFaceEntitiesResponse.getData().getEntities().isEmpty()) { break; } + listFaceEntitiesRequest.setToken(listFaceEntitiesResponse.getData().getToken()); listFaceEntitiesResponse.getData().getEntities().forEach(entity -> { String entityId = entity.getEntityId(); String[] split = entityId.split("_");