Use thread executors to speed up the database loading process

This commit is contained in:
KingRainbow44
2023-05-30 15:38:26 -04:00
Unverified
parent 2009a90e66
commit 36a35c11aa
6 changed files with 184 additions and 79 deletions
+22 -9
View File
@@ -1,8 +1,5 @@
package emu.grasscutter;
import static emu.grasscutter.config.Configuration.SERVER;
import static emu.grasscutter.utils.lang.Language.translate;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import emu.grasscutter.auth.AuthenticationSystem;
@@ -33,12 +30,7 @@ import emu.grasscutter.utils.JsonUtils;
import emu.grasscutter.utils.StartupArguments;
import emu.grasscutter.utils.Utils;
import emu.grasscutter.utils.lang.Language;
import java.io.File;
import java.io.FileWriter;
import java.io.IOError;
import java.io.IOException;
import java.util.Calendar;
import javax.annotation.Nullable;
import io.netty.util.concurrent.FastThreadLocalThread;
import lombok.Getter;
import lombok.Setter;
import org.jline.reader.EndOfFileException;
@@ -50,6 +42,20 @@ import org.jline.terminal.TerminalBuilder;
import org.reflections.Reflections;
import org.slf4j.LoggerFactory;
import javax.annotation.Nullable;
import java.io.File;
import java.io.FileWriter;
import java.io.IOError;
import java.io.IOException;
import java.util.Calendar;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import static emu.grasscutter.config.Configuration.SERVER;
import static emu.grasscutter.utils.lang.Language.translate;
public final class Grasscutter {
public static final File configFile = new File("./config.json");
public static final Reflections reflector = new Reflections("emu.grasscutter");
@@ -75,6 +81,13 @@ public final class Grasscutter {
private static LineReader consoleLineReader = null;
@Getter private static final ExecutorService threadPool = new ThreadPoolExecutor(
6, 6, 60, TimeUnit.SECONDS,
new LinkedBlockingDeque<>(),
FastThreadLocalThread::new,
new ThreadPoolExecutor.AbortPolicy()
);
static {
// Declare logback configuration.
System.setProperty("logback.configurationFile", "src/main/resources/logback.xml");