应用场景:
最近有一批数据需要处理,有1500万的数据量,对数据格式化后再入库,用tomcat跑完后发现时间太长了,代码优化了一大圈,时间还是比较长,处理1000条数据竟然需要3分钟,所以就换了个跑法,把web项目打包成jar,并开启十个main方法,也就是10个线程一起跑、经过本地的测试运行打包好的jar处理1000条数据仅需要20s。有图有真相呀。
解决方法:
【1】改版项目
(PS:以前只知道web项目只能在应用服务骑上跑,现在终于知道了直接运行jar就ok)
【2】打包项目
打包项目的方法有很多,本人也尝试了很多种方法,但是最后以idea打包的方式完成了打包,这个过程太艰辛了,感觉如此简单的东西,自己竟然搞了两天多,气愤。
具体的方法可以参考此篇博文https://www.cnblogs.com/chenchen-tester/p/7992357.html
不得不说网上有很多文章,但是能真正觉得问题还得自己去思考。
注意:打包的时候要把相应的依赖一起打包
【3】将jar放到服务器运行
命令:java -cp internal-question-convertor.jar com.eebbk.internal.question.convertor.exportjar.UploadData1 start
UploadData1 是运行main方法的类
【4】遇到的问题
(1)在整改项目的时候,mapper文件和java文件不放到一个目录下,识别不了相应的方法。重点是我在xml中配置好路径,但还不行(部署在tomcat上是可以的),放到同样的下面就行,太奇怪了,最后只能退儿求其次将他们放到了一起。
(2)将web项目打包jar的过程重点是将依赖一起打包。否则不能运行。打包好后会提示找不到Application.xml,解决方法见此博文https://blog.csdn.net/wukongjuan/article/details/53115345
(3)运行jar时偶尔回报如下错误
奇怪的是再次运行就好了,网上说是编码问题,但是改了没什么用。也有人说配置文件语法错误,但是检查了几遍就差自己手敲xml了,这个问题后期还得跟进。