开发者社区> 问答> 正文

java 异步处理优化:报错

 点击一个按钮需要处理10000条数据

基本处理过程是: 

读取页面数据到List-->将List传递给异步线程-->在线程中for循环解析数据, for中有if进行校验数据, 然后插入数据库, 最后会更新一个Blob字段

读取到List:将页面的一条数据都封装到一个类中, 然后再for中循环,new出对应的类, 然后将类加add到List中, 再将List传递给异步线程。 

在异步线程中for解析数据, if校验,然后插入数据库, 再更新某些字段。 需要写一个blob字段

异步线程中的插入和更新操作,是用的是jdbc

用的是java


算是异步优化问题, 谁遇到过? 

展开
收起
kun坤 2020-06-07 14:12:47 647 0
1 条回答
写回答
取消 提交回答
  • 分段提交,比如1000条数据提交一次######没说明需要优化的地方,那里有问题?######回复 @globalHawk : 如果用jdk8,for循环可以用forEach来代替,jdbc插入可以用批量插入######向list 中写数据慢,jdbc插入数据慢######

    数据实时性要求很强吗?不强的话可以考虑延时报表。先把数据丢到内存里,然后起个timer,定时把内存里面的数据入库

    ######

    用Queue貌似就可以了,LinkedBlockingQueue。写一个线程无限执行 take方法,一旦有数据,就可以往下执行了。

    ###### 可以看看别人的类似实现:http://blog.csdn.net/chszs/article/details/7418880

    2020-06-07 14:12:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载