immersed-in-the-deep-sea

导航

 

默认分批是1000

一般也就改成100-1000之间示业务而定

 比较简洁的一种方式如下

原代码

public Boolean insertTasks(List<TaskInfoEntity> tasks, String agentId) {
        // todo 分批
        List<AgentTaskRelationEntity> entities = tasks.stream()
            .map((Function<TaskInfoEntity, AgentTaskRelationEntity>) task -> AgentTaskRelationEntity.builder()
                .agentId(agentId)
                .taskId(task.getTaskId())
                .enabled(task.getEnabled())
                .build())
            .collect(Collectors.toList());
        return xxx.saveBatch(entities);
    }

修改后的代码

public Boolean insertTasks(List<TaskInfoEntity> tasks, String agentId) {
        List<List<TaskInfoEntity>> batches = Lists.partition(tasks, BATCH_SIZE);
        for (List<TaskInfoEntity> batch : batches) {
            List<AgentTaskRelationEntity> entities = batch.stream()
                .map((Function<TaskInfoEntity, AgentTaskRelationEntity>) task -> AgentTaskRelationEntity.builder()
                    .agentId(agentId)
                    .taskId(task.getTaskId())
                    .enabled(task.getEnabled())
                    .build())
                .collect(Collectors.toList());
            xxx.saveBatch(entities);
        }
        return true;
    }

 

posted on 2024-05-07 10:54  沉浸深海  阅读(212)  评论(0)    收藏  举报