问题描述:
1
xuanbg 2021-07-29 20:56:47 +08:00
貌似没有返回什么结果啊???这样开个新的线程慢慢写或者丢进消息队列异步处理就好了,都是立马就能返回成功的。
|
2
fadedos OP @xuanbg 返回结果: 各条明细筛选出来的值, 会放在 list 中,再次给前台
放到消息队列中, 错了一个怎么回滚呢? |
3
clickhouse 2021-07-29 21:42:26 +08:00
看 2 说的,你想多线程优化的只是筛选,那么多线程筛选即可,反正只查表。“一条明细插入失败,所有的记录进行回滚”不就是正常的事务嘛。
|
4
fadedos OP @clickhouse
目前情况: 1.子线程查询筛选,在查表 C,表 D 时候,会发生锁表,导致子线程一直等待 2. 落表 A,B,C,D 是在 main 线程 (接手别人的代码) 改良思路: 1. 将落表逻辑提到子线程中,各个明细只管自己 想到的问题: 1. 一个线程失败,其他线程有插入成功, 这个整体回滚怎么做? |
5
DreamSpace 2021-07-29 23:14:50 +08:00 via Android
list.parallelStream() 最后 reduce 成一个 Map<String,List<?>>,遍历 Map 批量插入
|
6
fadedos OP @DreamSpace 能详细说说嘛? 这个流,直接在 main 线程使用? 写 java 写的少
|