我正在与 MySQL、Grails 和 Java 作斗争。
- 我有应用程序服务器,在那里运行 Grails 应用程序。
- 我有另一台带有 mysql db 的服务器。
- 我有一个 Java 应用程序,它连接到服务器以导出 csv 文件中的数据。
我在数据库中有很多数据(1000 万个寄存器),每 15 分钟 Grails 应用程序就会连接到数据库,以检查和保存新信息。正常运作方式。
我的问题是,当 grails 应用程序正在运行时,我想执行一个 java 应用程序,该应用程序将部分信息导出到数据库中。但我的问题是这个过程真的很慢,但只是有时。我会解释:
如果 Grails 应用程序正常工作,我的 Java 应用程序需要大约 4 天来导出所有数据。Java 进程占用大约 0.3-0% 的 CPU。
如果我关闭了 Tomcat,那么所有到数据库的连接(mySQL 上的 show processlist 命令)大约需要 40 分钟才能完成所有过程。Java 进程占用大约 85% 的 CPU。
我不确定是什么问题,但我尝试了一切,我的问题是我无法在我想要导出的所有时间停止 grails 应用程序。正因为如此,有一些方法可以给进程之间的优先级以确保我的 Java 应用程序将具有最高优先级?
提前感谢您的回答,