JAVA Stream流批量处理数据

int limit = (targetRelCollectList.size() + VirtualCategoryConstants.BATCH_NUM - VirtualCategoryConstants.ONE_INT) / VirtualCategoryConstants.BATCH_NUM;
                            // 获取分割后的集合
                            List<List<VirtualCategoryRelProductCollectEntity>> batchCollect = Stream.iterate(VirtualCategoryConstants.ZERO_INT, n -> n + VirtualCategoryConstants.ONE_INT).limit(limit).parallel()
                                    .map(a -> targetRelCollectList.stream().skip(a * VirtualCategoryConstants.BATCH_NUM).limit(VirtualCategoryConstants.BATCH_NUM).parallel()
                                            .collect(Collectors.toList())).collect(Collectors.toList());
//                            Executor executor = virCategoryThreadPoolConfig.virCategoryThreadTaskExecutor();
//                            List<CompletableFuture<Void>> futureList = new ArrayList<>();
                            for (List<VirtualCategoryRelProductCollectEntity> list : batchCollect) {
//                                futureList.add(CompletableFuture.runAsync(() -> {
                                    virtualCategoryRelProductCollectMapper.batchInsert(list);
//                                }, executor).exceptionally(exe -> {
//                                    log.error("redisDataToDB relCollect batchInsert error {},list {}", ExceptionUtils.getStackTrace(exe), JSONObject.toJSONString(list));
//                                    return null;
//                                }));
                            }


版权声明:本文为weixin_44399790原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。