如何正确处理大批量数据的业务

查看 24|回复 0
作者:ak1ak   
Hello, all!
数据库中有一大批待处理的数据,可能有百万量级,还会增长。希望定义一个接口,请求之后查询并处理好这些数据。
处理的逻辑可能涉及 RPC 之类耗时较长的代码。因此,我使用异步代码处理。伪代码如下:
// 1.查询数据库
List[B] bizs = queryDB();
// 2.分批次
List bizLists = Lists.partition(bizs, 1000);
// 3.异步处理 list
bizLists.forEach(list -> listAsyncService.handle(list));
// 4.listAsyncService#handle 也是异步处理
list.forEach(biz -> asyncService.handle(biz));
请教一下,上述代码是否合理。在数据量很大的情况下,如何避免步骤 1 出现 OOM 。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部