CompletableFuture.runAsync()使用不当导致生产问题
项目中需要计算N*M的数据,单天单仓数据量最大时25W左右,为了提高项目的计算能力,我们使用线程池并行处理据。每个线程处理某天某仓的数据,整个处理流程中耗时最长的地方就是数据存储,要把这25W条数据存储到Mysql表中。为了不让数据存储阻塞整体流程,在存储数据时,使用CompletableFuture.runAsync()另起一个线程去存储数据,主线程继续执行后续的计算任务,当所有数据计算完成,使用join()方法,保证该任务的所有数据都存储完成。
原创
2024-09-05 10:38:02 ·
314 阅读 ·
0 评论