将入库改成多线程添加日志

This commit is contained in:
hzj
2026-06-09 16:43:33 +08:00
parent ff0cbc7151
commit cf0c0085e9

View File

@@ -12,16 +12,14 @@ import com.njcn.device.pq.api.DeviceFeignClient;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.dto.DevComFlagDTO;
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.stream.Collectors;
@@ -34,6 +32,7 @@ import java.util.stream.Collectors;
* @version V1.0.0
*/
@Service("RelationLnDataDealServiceImpl")
@Slf4j
public class LnDataDealServiceImpl implements LnDataDealService {
@QueryBean
private IDataFlicker dataFlickerQuery;
@@ -74,6 +73,8 @@ public class LnDataDealServiceImpl implements LnDataDealService {
private Executor executor;
@Override
public void batchInsertion(LnDataDTO lnDataDTO) {
long start = System.currentTimeMillis();
List<CompletableFuture<Void>> futures = new ArrayList<>();
// 提交每个批量插入任务
@@ -94,6 +95,9 @@ public class LnDataDealServiceImpl implements LnDataDealService {
// 等待所有任务完成,如果任一任务抛出异常,这里会重新抛出
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
long end = System.currentTimeMillis();
log.info("入库方法执行耗时:" + (end - start) + " ms");
// 关闭线程池(优雅关闭,等待已提交任务完成)
// dataVService.batchInsertion(lnDataDTO.getDataVList());
@@ -132,6 +136,8 @@ public class LnDataDealServiceImpl implements LnDataDealService {
iPqsCommunicate.insertion(pqsCommunicateDto);
});
long end2 = System.currentTimeMillis();
log.info("更新device表" + (end2 - end) + " ms");
}