CompletableFuture异步编排_异步批量处理数据场景

该代码示例展示了如何使用Java的CompletableFuture进行异步分批处理大数据集合,每批数据通过callApi方法处理,然后将所有结果整合到一起。通过设置每批处理的数量(BATCH_SIZE)和总数据量(TOTAL_SIZE),动态计算总批次并启动异步任务,每个任务在不同的线程中执行,模拟了接口调用的延迟,最后收集并合并所有结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 需求

将一个数据量很大的集合,异步分批进行处理,然后再把每批数据进行整合

2 代码示例

public class BatchTest {
    // 定义每批处理的数量
    private static final int BATCH_SIZE = 3;
    // 定义总数
    private static final int TOTAL_SIZE = 10;

    public static void main(String[] args) {
        // 创建一个大小为总数据量(TOTAL_SIZE)的数据集合
        List<Integer> dataList = new ArrayList<>();
        for (int i = 1; i <= TOTAL_SIZE; i++) {
            dataList.add(i);
        }
        // 总批次
        int totalPageCount = (dataList.size() % BATCH_SIZE == 0) ? dataList.size() / BATCH_SIZE : dataList.size() / BATCH_SIZE + 1;
        System.out.println("总批次为:" + totalPageCount + "次");

        // 创建一个异步任务集合
        List<CompletableFuture<List<Integer>>> futures = new ArrayList<>();
        // 进行批次处理
        for (int i = 0; i < totalPageCount; i&
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值