Use batch import for dumped files, its much faster

This commit is contained in:
Brokkonaut
2018-08-03 01:35:33 +02:00
parent a853230c8d
commit 1878b94781

View File

@ -32,26 +32,37 @@ public class DumpedLogImporter implements Runnable {
final Statement st = conn.createStatement(); final Statement st = conn.createStatement();
final BufferedWriter writer = new BufferedWriter(new FileWriter(new File(logblock.getDataFolder(), "import/failed.txt"))); final BufferedWriter writer = new BufferedWriter(new FileWriter(new File(logblock.getDataFolder(), "import/failed.txt")));
int successes = 0, errors = 0; int successes = 0, errors = 0;
for (final File sqlFile : imports) { try {
logblock.getLogger().info("Trying to import " + sqlFile.getName() + " ..."); for (final File sqlFile : imports) {
final BufferedReader reader = new BufferedReader(new FileReader(sqlFile)); String line = null;
String line;
while ((line = reader.readLine()) != null) {
try { try {
st.execute(line); logblock.getLogger().info("Trying to import " + sqlFile.getName() + " ...");
successes++; final BufferedReader reader = new BufferedReader(new FileReader(sqlFile));
while ((line = reader.readLine()) != null) {
if (line.endsWith(";")) {
line = line.substring(0, line.length() - 1);
}
if(!line.isEmpty()) {
st.addBatch(line);
successes++;
}
}
st.executeBatch();
conn.commit();
reader.close();
sqlFile.delete();
logblock.getLogger().info("Successfully imported " + sqlFile.getName() + ".");
} catch (final Exception ex) { } catch (final Exception ex) {
logblock.getLogger().warning("Error while importing: '" + line + "': " + ex.getMessage()); logblock.getLogger().warning("Error while importing: '" + line + "': " + ex.getMessage());
writer.write(line + newline); writer.write(line + newline);
errors++; errors++;
ex.printStackTrace();
return;
} }
} }
conn.commit(); } finally {
reader.close(); writer.close();
sqlFile.delete();
logblock.getLogger().info("Successfully imported " + sqlFile.getName() + ".");
} }
writer.close();
st.close(); st.close();
logblock.getLogger().info("Successfully imported stored queue. (" + successes + " rows imported, " + errors + " errors)"); logblock.getLogger().info("Successfully imported stored queue. (" + successes + " rows imported, " + errors + " errors)");
} catch (final Exception ex) { } catch (final Exception ex) {