有个业务比较耗时,大致就是查出数据来,然后对这些数据根据不同情况,遍历进行处理,每条数据处理过程比较耗时,可能会调用其他服务,有可能出现超时情况,还会修改数据库。
我如果用多线程,把数据分成几份,然后每份一个线程去处理,这样会不会缩短整个业务的执行时间?
应用的框架是spring boot,请哪位老师针对框架给个解决思路。
和你用的框架关系不大,最好能用数据库存储过程处理,速度会更快
1.你这些耗时的任务能不能预先处理好,放到固定的表里到时候查询呢?
2.存储过程是一个好的思路,因为你可以节省数据从数据库到应用的传输过程,直接在数据库做计算
3.至于你说的思路我觉得不可取,因为如果遇到并发的情况下,你的策略将是一件恐怖的事情。
业务上下手 用不上的表 替换成list存储 用java代码实现 sql
1、先找出耗时高的地方,是你的查询数据耗时高,还是调用别人服务耗时高
2、如果是你这边查询数据耗时高就要想办法优化查询或者添加索引,如果是别人服务耗时高的话要么让服务提供者进行优化或者是你这边增加缓存
3、由于你的每个数据的处理方式是不同的,有可能你用多个线程处理的时候会对同一条数据处理,这样容易并发所以还是慎用