私は MySQL、Grails、および Java と戦っています。
- アプリサーバーがあり、そこで Grails アプリが実行されています。
- 私はmysql dbを備えた別のサーバーを持っています。
- サーバーに接続してデータをcsvファイルにエクスポートするJavaアプリが1つあります。
DB には大量のデータ (1,000 万のレジスタ) があり、15 分ごとに Grails アプリが DB に接続して、新しい情報を確認して保存しています。通常の機能方法。
私の問題は、grails アプリが動作している間に、データベース内の情報の一部をエクスポートする Java アプリを実行したいということです。しかし、私の問題は、プロセスが非常に遅いことですが、たまにしかありません。私は説明します:
Grails アプリが機能している場合、私の Java アプリはすべてのデータをエクスポートするのに約 4 日かかります。Java プロセスは CPU の約 0.3 ~ 0% を使用します。
Tomcat をオフにした場合、DB へのすべての接続 (mySQL の show processlist コマンド) は、すべてのプロセスを完了するのに約 40 分かかります。Java プロセスは、CPU の約 85% を使用します。
何が問題なのかわかりませんが、私はすべてを試しました。私の問題は、エクスポートしたいときに常に grails アプリを停止できないことです。このため、プロセス間の優先順位を指定して、Java アプリが最高の優先順位になるようにする方法はありますか?
ご回答ありがとうございます。