mirror of
https://github.com/itHotL/PlayerStats.git
synced 2025-02-21 02:31:58 +01:00
Shutdown ExecutorService after it's finished in OfflinePlayerHandler and made async method for initial database setup
This commit is contained in:
parent
2ec80e8a84
commit
279020153c
@ -213,7 +213,7 @@
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.19-R0.1-SNAPSHOT</version>
|
||||
<version>1.19.4-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
2
pom.xml
2
pom.xml
@ -65,7 +65,7 @@
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.19-R0.1-SNAPSHOT</version>
|
||||
<version>1.19.4-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
@ -1,10 +1,11 @@
|
||||
package com.artemis.the.gr8.playerstats.core.database;
|
||||
|
||||
import com.artemis.the.gr8.databasemanager.DatabaseManager;
|
||||
import com.artemis.the.gr8.databasemanager.datamodels.MyStatType;
|
||||
import com.artemis.the.gr8.databasemanager.datamodels.MyStatistic;
|
||||
import com.artemis.the.gr8.databasemanager.datamodels.MySubStatistic;
|
||||
import com.artemis.the.gr8.databasemanager.models.MyStatType;
|
||||
import com.artemis.the.gr8.databasemanager.models.MyStatistic;
|
||||
import com.artemis.the.gr8.databasemanager.models.MySubStatistic;
|
||||
import com.artemis.the.gr8.playerstats.core.utils.EnumHandler;
|
||||
import com.artemis.the.gr8.playerstats.core.utils.MyLogger;
|
||||
import org.bukkit.Statistic;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@ -12,6 +13,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class Database {
|
||||
|
||||
@ -34,12 +36,11 @@ public class Database {
|
||||
}
|
||||
|
||||
private void setUp() {
|
||||
databaseManager.updateStatistics(getStats(), getSubStats());
|
||||
}
|
||||
|
||||
public boolean isRunning() {
|
||||
//TODO do something with databaseManager to see if it's active
|
||||
return true;
|
||||
//TODO detect if empty
|
||||
long startTime = System.currentTimeMillis();
|
||||
CompletableFuture
|
||||
.runAsync(() -> databaseManager.updateStatistics(getStats(), getSubStats()))
|
||||
.thenRun(() -> MyLogger.logLowLevelTask("Database setup finished", startTime));
|
||||
}
|
||||
|
||||
private @NotNull List<MyStatistic> getStats() {
|
||||
|
@ -12,17 +12,12 @@ public class DatabaseProcessor extends RequestProcessor {
|
||||
|
||||
private final OutputManager outputManager;
|
||||
private final Database database;
|
||||
private boolean isActive;
|
||||
|
||||
public DatabaseProcessor(OutputManager outputManager, Database database) {
|
||||
this.outputManager = outputManager;
|
||||
this.database = database;
|
||||
}
|
||||
|
||||
public boolean isActive() {
|
||||
return database.isRunning();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull StatResult<Integer> processPlayerRequest(StatRequest<?> playerStatRequest) {
|
||||
return null;
|
||||
|
@ -9,9 +9,7 @@ import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ForkJoinPool;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
@ -153,14 +151,16 @@ public final class OfflinePlayerHandler extends FileHandler {
|
||||
}
|
||||
|
||||
private void loadOfflinePlayers() {
|
||||
Executors.newSingleThreadExecutor().execute(() -> {
|
||||
ExecutorService executor = Executors.newSingleThreadExecutor();
|
||||
executor.execute(() -> {
|
||||
loadExcludedPlayerNames();
|
||||
loadIncludedOfflinePlayers();
|
||||
});
|
||||
executor.shutdown();
|
||||
}
|
||||
|
||||
private void loadIncludedOfflinePlayers() {
|
||||
long time = System.currentTimeMillis();
|
||||
long startTime = System.currentTimeMillis();
|
||||
|
||||
OfflinePlayer[] offlinePlayers;
|
||||
if (config.whitelistOnly()) {
|
||||
@ -177,7 +177,7 @@ public final class OfflinePlayerHandler extends FileHandler {
|
||||
ForkJoinPool.commonPool().invoke(ThreadManager.getPlayerLoadAction(offlinePlayers, includedPlayerUUIDs));
|
||||
|
||||
MyLogger.actionFinished();
|
||||
MyLogger.logLowLevelTask(("Loaded " + includedPlayerUUIDs.size() + " offline players"), time);
|
||||
MyLogger.logLowLevelTask(("Loaded " + includedPlayerUUIDs.size() + " offline players"), startTime);
|
||||
}
|
||||
|
||||
private void loadExcludedPlayerNames() {
|
||||
|
Loading…
Reference in New Issue
Block a user