mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2024-09-19 18:21:00 +02:00
Modularized enable task registration
This commit is contained in:
parent
f14c481a29
commit
0ef23bb751
@ -29,7 +29,6 @@ import com.djrapitops.plugin.api.utility.log.DebugLog;
|
|||||||
import com.djrapitops.plugin.api.utility.log.Log;
|
import com.djrapitops.plugin.api.utility.log.Log;
|
||||||
import com.djrapitops.plugin.settings.ColorScheme;
|
import com.djrapitops.plugin.settings.ColorScheme;
|
||||||
import com.djrapitops.plugin.task.AbsRunnable;
|
import com.djrapitops.plugin.task.AbsRunnable;
|
||||||
import com.djrapitops.plugin.task.ITask;
|
|
||||||
import com.djrapitops.plugin.task.RunnableFactory;
|
import com.djrapitops.plugin.task.RunnableFactory;
|
||||||
import main.java.com.djrapitops.plan.api.API;
|
import main.java.com.djrapitops.plan.api.API;
|
||||||
import main.java.com.djrapitops.plan.api.IPlan;
|
import main.java.com.djrapitops.plan.api.IPlan;
|
||||||
@ -56,6 +55,7 @@ import main.java.com.djrapitops.plan.systems.processing.Processor;
|
|||||||
import main.java.com.djrapitops.plan.systems.processing.importing.importers.OfflinePlayerImporter;
|
import main.java.com.djrapitops.plan.systems.processing.importing.importers.OfflinePlayerImporter;
|
||||||
import main.java.com.djrapitops.plan.systems.queue.ProcessingQueue;
|
import main.java.com.djrapitops.plan.systems.queue.ProcessingQueue;
|
||||||
import main.java.com.djrapitops.plan.systems.tasks.TPSCountTimer;
|
import main.java.com.djrapitops.plan.systems.tasks.TPSCountTimer;
|
||||||
|
import main.java.com.djrapitops.plan.systems.tasks.TaskSystem;
|
||||||
import main.java.com.djrapitops.plan.systems.update.VersionCheckSystem;
|
import main.java.com.djrapitops.plan.systems.update.VersionCheckSystem;
|
||||||
import main.java.com.djrapitops.plan.systems.webserver.WebServer;
|
import main.java.com.djrapitops.plan.systems.webserver.WebServer;
|
||||||
import main.java.com.djrapitops.plan.systems.webserver.WebServerSystem;
|
import main.java.com.djrapitops.plan.systems.webserver.WebServerSystem;
|
||||||
@ -188,7 +188,8 @@ public class Plan extends BukkitPlugin implements IPlan {
|
|||||||
registerListeners();
|
registerListeners();
|
||||||
}
|
}
|
||||||
PlanPlayerListener.setCountKicks(true);
|
PlanPlayerListener.setCountKicks(true);
|
||||||
registerTasks();
|
|
||||||
|
TaskSystem.getInstance().init();
|
||||||
|
|
||||||
this.api = new API(this);
|
this.api = new API(this);
|
||||||
|
|
||||||
@ -229,51 +230,6 @@ public class Plan extends BukkitPlugin implements IPlan {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerTasks() {
|
|
||||||
String bootAnalysisMsg = Locale.get(Msg.ENABLE_BOOT_ANALYSIS_INFO).toString();
|
|
||||||
String bootAnalysisRunMsg = Locale.get(Msg.ENABLE_BOOT_ANALYSIS_RUN_INFO).toString();
|
|
||||||
|
|
||||||
Benchmark.start("Task Registration");
|
|
||||||
tpsCountTimer = new TPSCountTimer(this);
|
|
||||||
RunnableFactory.createNew(tpsCountTimer).runTaskTimer(1000, TimeAmount.SECOND.ticks());
|
|
||||||
|
|
||||||
// Analysis refresh settings
|
|
||||||
int analysisRefreshMinutes = Settings.ANALYSIS_AUTO_REFRESH.getNumber();
|
|
||||||
boolean analysisRefreshTaskIsEnabled = analysisRefreshMinutes > 0;
|
|
||||||
long analysisPeriod = analysisRefreshMinutes * TimeAmount.MINUTE.ticks();
|
|
||||||
|
|
||||||
Log.info(bootAnalysisMsg);
|
|
||||||
|
|
||||||
ITask bootAnalysisTask = RunnableFactory.createNew("BootAnalysisTask", new AbsRunnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
Log.info(bootAnalysisRunMsg);
|
|
||||||
infoManager.refreshAnalysis(getServerUUID());
|
|
||||||
this.cancel();
|
|
||||||
}
|
|
||||||
}).runTaskLaterAsynchronously(30 * TimeAmount.SECOND.ticks());
|
|
||||||
|
|
||||||
bootAnalysisTaskID = bootAnalysisTask.getTaskId();
|
|
||||||
|
|
||||||
if (analysisRefreshTaskIsEnabled) {
|
|
||||||
RunnableFactory.createNew("PeriodicalAnalysisTask", new AbsRunnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
infoManager.refreshAnalysis(getServerUUID());
|
|
||||||
}
|
|
||||||
}).runTaskTimerAsynchronously(analysisPeriod, analysisPeriod);
|
|
||||||
}
|
|
||||||
|
|
||||||
RunnableFactory.createNew("PeriodicNetworkBoxRefreshTask", new AbsRunnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
infoManager.updateNetworkPageContent();
|
|
||||||
}
|
|
||||||
}).runTaskTimerAsynchronously(TimeAmount.SECOND.ticks(), TimeAmount.MINUTE.ticks() * 5L);
|
|
||||||
|
|
||||||
Benchmark.stop("Enable", "Task Registration");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ColorScheme getColorScheme() {
|
public ColorScheme getColorScheme() {
|
||||||
try {
|
try {
|
||||||
@ -380,15 +336,6 @@ public class Plan extends BukkitPlugin implements IPlan {
|
|||||||
return hookHandler;
|
return hookHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to get the ID of the BootAnalysisTask, so that it can be disabled.
|
|
||||||
*
|
|
||||||
* @return ID of the bootAnalysisTask
|
|
||||||
*/
|
|
||||||
public int getBootAnalysisTaskID() {
|
|
||||||
return bootAnalysisTaskID;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to get the object storing server variables that are constant after
|
* Used to get the object storing server variables that are constant after
|
||||||
* boot.
|
* boot.
|
||||||
|
@ -7,11 +7,9 @@ package main.java.com.djrapitops.plan;
|
|||||||
import com.djrapitops.plugin.BungeePlugin;
|
import com.djrapitops.plugin.BungeePlugin;
|
||||||
import com.djrapitops.plugin.StaticHolder;
|
import com.djrapitops.plugin.StaticHolder;
|
||||||
import com.djrapitops.plugin.api.Benchmark;
|
import com.djrapitops.plugin.api.Benchmark;
|
||||||
import com.djrapitops.plugin.api.TimeAmount;
|
|
||||||
import com.djrapitops.plugin.api.config.Config;
|
import com.djrapitops.plugin.api.config.Config;
|
||||||
import com.djrapitops.plugin.api.utility.log.Log;
|
import com.djrapitops.plugin.api.utility.log.Log;
|
||||||
import com.djrapitops.plugin.settings.ColorScheme;
|
import com.djrapitops.plugin.settings.ColorScheme;
|
||||||
import com.djrapitops.plugin.task.AbsRunnable;
|
|
||||||
import com.djrapitops.plugin.task.RunnableFactory;
|
import com.djrapitops.plugin.task.RunnableFactory;
|
||||||
import main.java.com.djrapitops.plan.api.IPlan;
|
import main.java.com.djrapitops.plan.api.IPlan;
|
||||||
import main.java.com.djrapitops.plan.command.PlanBungeeCommand;
|
import main.java.com.djrapitops.plan.command.PlanBungeeCommand;
|
||||||
@ -30,7 +28,7 @@ import main.java.com.djrapitops.plan.systems.info.server.BungeeServerInfoManager
|
|||||||
import main.java.com.djrapitops.plan.systems.listeners.BungeePlayerListener;
|
import main.java.com.djrapitops.plan.systems.listeners.BungeePlayerListener;
|
||||||
import main.java.com.djrapitops.plan.systems.processing.Processor;
|
import main.java.com.djrapitops.plan.systems.processing.Processor;
|
||||||
import main.java.com.djrapitops.plan.systems.queue.ProcessingQueue;
|
import main.java.com.djrapitops.plan.systems.queue.ProcessingQueue;
|
||||||
import main.java.com.djrapitops.plan.systems.tasks.TPSCountTimer;
|
import main.java.com.djrapitops.plan.systems.tasks.TaskSystem;
|
||||||
import main.java.com.djrapitops.plan.systems.update.VersionCheckSystem;
|
import main.java.com.djrapitops.plan.systems.update.VersionCheckSystem;
|
||||||
import main.java.com.djrapitops.plan.systems.webserver.WebServer;
|
import main.java.com.djrapitops.plan.systems.webserver.WebServer;
|
||||||
import main.java.com.djrapitops.plan.systems.webserver.WebServerSystem;
|
import main.java.com.djrapitops.plan.systems.webserver.WebServerSystem;
|
||||||
@ -72,7 +70,6 @@ public class PlanBungee extends BungeePlugin implements IPlan {
|
|||||||
new Locale().loadLocale();
|
new Locale().loadLocale();
|
||||||
|
|
||||||
Theme.getInstance().init();
|
Theme.getInstance().init();
|
||||||
|
|
||||||
DBSystem.getInstance().init();
|
DBSystem.getInstance().init();
|
||||||
|
|
||||||
registerCommand("planbungee", new PlanBungeeCommand(this));
|
registerCommand("planbungee", new PlanBungeeCommand(this));
|
||||||
@ -92,21 +89,7 @@ public class PlanBungee extends BungeePlugin implements IPlan {
|
|||||||
WebServerSystem.getInstance().init();
|
WebServerSystem.getInstance().init();
|
||||||
serverInfoManager.loadServerInfo();
|
serverInfoManager.loadServerInfo();
|
||||||
|
|
||||||
RunnableFactory.createNew("Enable Bukkit Connection Task", new AbsRunnable() {
|
TaskSystem.getInstance().init();
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
infoManager.attemptConnection();
|
|
||||||
infoManager.sendConfigSettings();
|
|
||||||
}
|
|
||||||
}).runTaskAsynchronously();
|
|
||||||
RunnableFactory.createNew("Player Count task", new TPSCountTimer(this))
|
|
||||||
.runTaskTimerAsynchronously(1000, TimeAmount.SECOND.ticks());
|
|
||||||
RunnableFactory.createNew("NetworkPageContentUpdateTask", new AbsRunnable("NetworkPageContentUpdateTask") {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
infoManager.updateNetworkPageContent();
|
|
||||||
}
|
|
||||||
}).runTaskTimerAsynchronously(1500, TimeAmount.MINUTE.ticks());
|
|
||||||
|
|
||||||
processingQueue = new ProcessingQueue();
|
processingQueue = new ProcessingQueue();
|
||||||
|
|
||||||
|
@ -131,10 +131,6 @@ public class AnalyzeCommand extends SubCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateCache(ISender sender, UUID serverUUID) {
|
private void updateCache(ISender sender, UUID serverUUID) {
|
||||||
int bootAnID = plugin.getBootAnalysisTaskID();
|
|
||||||
if (bootAnID != -1) {
|
|
||||||
plugin.getServer().getScheduler().cancelTask(bootAnID);
|
|
||||||
}
|
|
||||||
infoManager.addAnalysisNotification(sender, serverUUID);
|
infoManager.addAnalysisNotification(sender, serverUUID);
|
||||||
infoManager.refreshAnalysis(serverUUID);
|
infoManager.refreshAnalysis(serverUUID);
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,9 @@ import main.java.com.djrapitops.plan.systems.file.config.PlanConfigSystem;
|
|||||||
import main.java.com.djrapitops.plan.systems.file.database.DBSystem;
|
import main.java.com.djrapitops.plan.systems.file.database.DBSystem;
|
||||||
import main.java.com.djrapitops.plan.systems.file.database.PlanBungeeDBSystem;
|
import main.java.com.djrapitops.plan.systems.file.database.PlanBungeeDBSystem;
|
||||||
import main.java.com.djrapitops.plan.systems.file.database.PlanDBSystem;
|
import main.java.com.djrapitops.plan.systems.file.database.PlanDBSystem;
|
||||||
|
import main.java.com.djrapitops.plan.systems.tasks.PlanBungeeTaskSystem;
|
||||||
|
import main.java.com.djrapitops.plan.systems.tasks.PlanTaskSystem;
|
||||||
|
import main.java.com.djrapitops.plan.systems.tasks.TaskSystem;
|
||||||
import main.java.com.djrapitops.plan.systems.update.VersionCheckSystem;
|
import main.java.com.djrapitops.plan.systems.update.VersionCheckSystem;
|
||||||
import main.java.com.djrapitops.plan.systems.webserver.WebServerSystem;
|
import main.java.com.djrapitops.plan.systems.webserver.WebServerSystem;
|
||||||
import main.java.com.djrapitops.plan.utilities.MiscUtils;
|
import main.java.com.djrapitops.plan.utilities.MiscUtils;
|
||||||
@ -34,6 +37,8 @@ public class Systems {
|
|||||||
|
|
||||||
private WebServerSystem webServerSystem;
|
private WebServerSystem webServerSystem;
|
||||||
|
|
||||||
|
private TaskSystem taskSystem;
|
||||||
|
|
||||||
private VersionCheckSystem versionCheckSystem;
|
private VersionCheckSystem versionCheckSystem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -47,6 +52,8 @@ public class Systems {
|
|||||||
databaseSystem = new PlanDBSystem();
|
databaseSystem = new PlanDBSystem();
|
||||||
versionCheckSystem = new VersionCheckSystem(plugin.getVersion());
|
versionCheckSystem = new VersionCheckSystem(plugin.getVersion());
|
||||||
|
|
||||||
|
taskSystem = new PlanTaskSystem();
|
||||||
|
|
||||||
webServerSystem = new WebServerSystem(plugin);
|
webServerSystem = new WebServerSystem(plugin);
|
||||||
themeSystem = new Theme();
|
themeSystem = new Theme();
|
||||||
}
|
}
|
||||||
@ -62,6 +69,8 @@ public class Systems {
|
|||||||
databaseSystem = new PlanBungeeDBSystem();
|
databaseSystem = new PlanBungeeDBSystem();
|
||||||
versionCheckSystem = new VersionCheckSystem(plugin.getVersion());
|
versionCheckSystem = new VersionCheckSystem(plugin.getVersion());
|
||||||
|
|
||||||
|
taskSystem = new PlanBungeeTaskSystem();
|
||||||
|
|
||||||
webServerSystem = new WebServerSystem(plugin);
|
webServerSystem = new WebServerSystem(plugin);
|
||||||
themeSystem = new Theme();
|
themeSystem = new Theme();
|
||||||
}
|
}
|
||||||
@ -114,4 +123,8 @@ public class Systems {
|
|||||||
public Theme getThemeSystem() {
|
public Theme getThemeSystem() {
|
||||||
return themeSystem;
|
return themeSystem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TaskSystem getTaskSystem() {
|
||||||
|
return taskSystem;
|
||||||
|
}
|
||||||
}
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Licence is provided in the jar as license.yml also here:
|
||||||
|
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
|
||||||
|
*/
|
||||||
|
package main.java.com.djrapitops.plan.systems.tasks;
|
||||||
|
|
||||||
|
import com.djrapitops.plugin.api.TimeAmount;
|
||||||
|
import com.djrapitops.plugin.task.AbsRunnable;
|
||||||
|
import main.java.com.djrapitops.plan.PlanBungee;
|
||||||
|
import main.java.com.djrapitops.plan.api.exceptions.PlanEnableException;
|
||||||
|
import main.java.com.djrapitops.plan.systems.info.BungeeInformationManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* //TODO Class Javadoc Comment
|
||||||
|
*
|
||||||
|
* @author Rsl1122
|
||||||
|
*/
|
||||||
|
public class PlanBungeeTaskSystem extends TaskSystem {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws PlanEnableException {
|
||||||
|
registerTasks();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerTasks() {
|
||||||
|
BungeeInformationManager infoManager = ((BungeeInformationManager) PlanBungee.getInstance().getInfoManager());
|
||||||
|
|
||||||
|
registerTask("Enable Bukkit Connection Task", new AbsRunnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
infoManager.attemptConnection();
|
||||||
|
infoManager.sendConfigSettings();
|
||||||
|
}
|
||||||
|
}).runTaskAsynchronously();
|
||||||
|
registerTask("Player Count task", new TPSCountTimer(PlanBungee.getInstance()))
|
||||||
|
.runTaskTimerAsynchronously(1000, TimeAmount.SECOND.ticks());
|
||||||
|
registerTask("NetworkPageContentUpdateTask", new AbsRunnable("NetworkPageContentUpdateTask") {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
infoManager.updateNetworkPageContent();
|
||||||
|
}
|
||||||
|
}).runTaskTimerAsynchronously(1500, TimeAmount.MINUTE.ticks());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,89 @@
|
|||||||
|
/*
|
||||||
|
* Licence is provided in the jar as license.yml also here:
|
||||||
|
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
|
||||||
|
*/
|
||||||
|
package main.java.com.djrapitops.plan.systems.tasks;
|
||||||
|
|
||||||
|
import com.djrapitops.plugin.api.Benchmark;
|
||||||
|
import com.djrapitops.plugin.api.TimeAmount;
|
||||||
|
import com.djrapitops.plugin.api.utility.log.Log;
|
||||||
|
import com.djrapitops.plugin.task.AbsRunnable;
|
||||||
|
import com.djrapitops.plugin.task.ITask;
|
||||||
|
import com.djrapitops.plugin.task.RunnableFactory;
|
||||||
|
import main.java.com.djrapitops.plan.Plan;
|
||||||
|
import main.java.com.djrapitops.plan.api.exceptions.PlanEnableException;
|
||||||
|
import main.java.com.djrapitops.plan.settings.Settings;
|
||||||
|
import main.java.com.djrapitops.plan.settings.locale.Locale;
|
||||||
|
import main.java.com.djrapitops.plan.settings.locale.Msg;
|
||||||
|
import main.java.com.djrapitops.plan.systems.info.InformationManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* //TODO Class Javadoc Comment
|
||||||
|
*
|
||||||
|
* @author Rsl1122
|
||||||
|
*/
|
||||||
|
public class PlanTaskSystem extends TaskSystem {
|
||||||
|
|
||||||
|
// TODO Remove Plan.getInstance requirement.
|
||||||
|
|
||||||
|
private ITask bootAnalysisTask;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws PlanEnableException {
|
||||||
|
registerTasks();
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO Clean Up
|
||||||
|
private void registerTasks() {
|
||||||
|
String bootAnalysisMsg = Locale.get(Msg.ENABLE_BOOT_ANALYSIS_INFO).toString();
|
||||||
|
String bootAnalysisRunMsg = Locale.get(Msg.ENABLE_BOOT_ANALYSIS_RUN_INFO).toString();
|
||||||
|
|
||||||
|
Benchmark.start("Task Registration");
|
||||||
|
tpsCountTimer = new TPSCountTimer(Plan.getInstance());
|
||||||
|
registerTask(tpsCountTimer).runTaskTimer(1000, TimeAmount.SECOND.ticks());
|
||||||
|
|
||||||
|
// Analysis refresh settings
|
||||||
|
int analysisRefreshMinutes = Settings.ANALYSIS_AUTO_REFRESH.getNumber();
|
||||||
|
boolean analysisRefreshTaskIsEnabled = analysisRefreshMinutes > 0;
|
||||||
|
long analysisPeriod = analysisRefreshMinutes * TimeAmount.MINUTE.ticks();
|
||||||
|
|
||||||
|
Log.info(bootAnalysisMsg);
|
||||||
|
|
||||||
|
InformationManager infoManager = Plan.getInstance().getInfoManager();
|
||||||
|
|
||||||
|
bootAnalysisTask = RunnableFactory.createNew("BootAnalysisTask", new AbsRunnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Log.info(bootAnalysisRunMsg);
|
||||||
|
infoManager.refreshAnalysis(Plan.getServerUUID());
|
||||||
|
this.cancel();
|
||||||
|
}
|
||||||
|
}).runTaskLaterAsynchronously(30 * TimeAmount.SECOND.ticks());
|
||||||
|
|
||||||
|
if (analysisRefreshTaskIsEnabled) {
|
||||||
|
RunnableFactory.createNew("PeriodicalAnalysisTask", new AbsRunnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
infoManager.refreshAnalysis(Plan.getServerUUID());
|
||||||
|
}
|
||||||
|
}).runTaskTimerAsynchronously(analysisPeriod, analysisPeriod);
|
||||||
|
}
|
||||||
|
|
||||||
|
registerTask("PeriodicNetworkBoxRefreshTask", new AbsRunnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
infoManager.updateNetworkPageContent();
|
||||||
|
}
|
||||||
|
}).runTaskTimerAsynchronously(TimeAmount.SECOND.ticks(), TimeAmount.MINUTE.ticks() * 5L);
|
||||||
|
|
||||||
|
Benchmark.stop("Enable", "Task Registration");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void cancelBootAnalysis() {
|
||||||
|
try {
|
||||||
|
bootAnalysisTask.cancel();
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
/* Ignored */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* Licence is provided in the jar as license.yml also here:
|
||||||
|
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
|
||||||
|
*/
|
||||||
|
package main.java.com.djrapitops.plan.systems.tasks;
|
||||||
|
|
||||||
|
import com.djrapitops.plugin.api.systems.TaskCenter;
|
||||||
|
import com.djrapitops.plugin.task.AbsRunnable;
|
||||||
|
import com.djrapitops.plugin.task.IRunnable;
|
||||||
|
import com.djrapitops.plugin.task.RunnableFactory;
|
||||||
|
import main.java.com.djrapitops.plan.systems.SubSystem;
|
||||||
|
import main.java.com.djrapitops.plan.systems.Systems;
|
||||||
|
import main.java.com.djrapitops.plan.utilities.MiscUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* //TODO Class Javadoc Comment
|
||||||
|
*
|
||||||
|
* @author Rsl1122
|
||||||
|
*/
|
||||||
|
public abstract class TaskSystem implements SubSystem {
|
||||||
|
|
||||||
|
protected TPSCountTimer tpsCountTimer;
|
||||||
|
|
||||||
|
public static TaskSystem getInstance() {
|
||||||
|
return Systems.getInstance().getTaskSystem();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected IRunnable registerTask(AbsRunnable runnable) {
|
||||||
|
String taskName = runnable.getName();
|
||||||
|
return registerTask(taskName != null ? taskName : runnable.getClass().getSimpleName(), runnable);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected IRunnable registerTask(String name, AbsRunnable runnable) {
|
||||||
|
return RunnableFactory.createNew(name, runnable);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close() {
|
||||||
|
TaskCenter.cancelAllKnownTasks(MiscUtils.getIPlan().getClass());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TPSCountTimer getTpsCountTimer() {
|
||||||
|
return tpsCountTimer;
|
||||||
|
}
|
||||||
|
}
|
@ -20,6 +20,8 @@ import main.java.com.djrapitops.plan.systems.cache.DataCache;
|
|||||||
import main.java.com.djrapitops.plan.systems.cache.SessionCache;
|
import main.java.com.djrapitops.plan.systems.cache.SessionCache;
|
||||||
import main.java.com.djrapitops.plan.systems.info.BukkitInformationManager;
|
import main.java.com.djrapitops.plan.systems.info.BukkitInformationManager;
|
||||||
import main.java.com.djrapitops.plan.systems.info.InformationManager;
|
import main.java.com.djrapitops.plan.systems.info.InformationManager;
|
||||||
|
import main.java.com.djrapitops.plan.systems.tasks.PlanTaskSystem;
|
||||||
|
import main.java.com.djrapitops.plan.systems.tasks.TaskSystem;
|
||||||
import main.java.com.djrapitops.plan.systems.webserver.response.ErrorResponse;
|
import main.java.com.djrapitops.plan.systems.webserver.response.ErrorResponse;
|
||||||
import main.java.com.djrapitops.plan.systems.webserver.response.InternalErrorResponse;
|
import main.java.com.djrapitops.plan.systems.webserver.response.InternalErrorResponse;
|
||||||
|
|
||||||
@ -54,6 +56,8 @@ public class Analysis {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
((PlanTaskSystem) TaskSystem.getInstance()).cancelBootAnalysis();
|
||||||
|
|
||||||
Benchmark.start("Analysis");
|
Benchmark.start("Analysis");
|
||||||
log(Locale.get(Msg.ANALYSIS_START).toString());
|
log(Locale.get(Msg.ANALYSIS_START).toString());
|
||||||
// Async task for Analysis
|
// Async task for Analysis
|
||||||
@ -218,10 +222,6 @@ public class Analysis {
|
|||||||
return taskId != -1;
|
return taskId != -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTaskId(int id) {
|
|
||||||
taskId = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Only available during Analysis.
|
* Only available during Analysis.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user