[#707] Task for refreshing the /players page

Run every 5 minutes - I'll make it configurable later in a config update
This commit is contained in:
Rsl1122 2018-10-24 22:32:35 +03:00
parent 7bb97f4ffc
commit 7689457d1f
6 changed files with 43 additions and 12 deletions

View File

@ -40,7 +40,8 @@ public class BukkitTaskSystem extends ServerTaskSystem {
BootAnalysisTask bootAnalysisTask,
PeriodicAnalysisTask periodicAnalysisTask,
PingCountTimerBukkit pingCountTimer,
LogsFolderCleanTask logsFolderCleanTask
LogsFolderCleanTask logsFolderCleanTask,
PlayersPageRefreshTask playersPageRefreshTask
) {
super(
runnableFactory,
@ -48,8 +49,8 @@ public class BukkitTaskSystem extends ServerTaskSystem {
config,
bootAnalysisTask,
periodicAnalysisTask,
logsFolderCleanTask
);
logsFolderCleanTask,
playersPageRefreshTask);
this.plugin = plugin;
this.pingCountTimer = pingCountTimer;
}

View File

@ -29,6 +29,7 @@ public class BungeeTaskSystem extends TaskSystem {
private final NetworkPageRefreshTask networkPageRefreshTask;
private final PingCountTimerBungee pingCountTimer;
private final LogsFolderCleanTask logsFolderCleanTask;
private final PlayersPageRefreshTask playersPageRefreshTask;
@Inject
public BungeeTaskSystem(
@ -38,8 +39,8 @@ public class BungeeTaskSystem extends TaskSystem {
BungeeTPSCountTimer bungeeTPSCountTimer,
NetworkPageRefreshTask networkPageRefreshTask,
PingCountTimerBungee pingCountTimer,
LogsFolderCleanTask logsFolderCleanTask
) {
LogsFolderCleanTask logsFolderCleanTask,
PlayersPageRefreshTask playersPageRefreshTask) {
super(runnableFactory, bungeeTPSCountTimer);
this.plugin = plugin;
this.config = config;
@ -47,6 +48,7 @@ public class BungeeTaskSystem extends TaskSystem {
this.networkPageRefreshTask = networkPageRefreshTask;
this.pingCountTimer = pingCountTimer;
this.logsFolderCleanTask = logsFolderCleanTask;
this.playersPageRefreshTask = playersPageRefreshTask;
}
@Override
@ -68,5 +70,8 @@ public class BungeeTaskSystem extends TaskSystem {
plugin.registerListener(pingCountTimer);
long startDelay = TimeAmount.toTicks(config.getNumber(Settings.PING_SERVER_ENABLE_DELAY), TimeUnit.SECONDS);
runnableFactory.create("PingCountTimer", pingCountTimer).runTaskTimer(startDelay, PingCountTimerBungee.PING_INTERVAL);
registerTask(playersPageRefreshTask)
.runTaskTimerAsynchronously(TimeAmount.toTicks(5L, TimeUnit.MINUTES), TimeAmount.toTicks(5L, TimeUnit.MINUTES));
}
}

View File

@ -0,0 +1,15 @@
package com.djrapitops.plan.system.tasks;
import com.djrapitops.plan.system.webserver.cache.PageId;
import com.djrapitops.plan.system.webserver.cache.ResponseCache;
import com.djrapitops.plugin.task.AbsRunnable;
import javax.inject.Singleton;
@Singleton
public class PlayersPageRefreshTask extends AbsRunnable {
@Override
public void run() {
ResponseCache.clearResponse(PageId.PLAYERS.id());
}
}

View File

@ -21,6 +21,7 @@ public abstract class ServerTaskSystem extends TaskSystem {
private final BootAnalysisTask bootAnalysisTask;
private final PeriodicAnalysisTask periodicAnalysisTask;
private final LogsFolderCleanTask logsFolderCleanTask;
private final PlayersPageRefreshTask playersPageRefreshTask;
public ServerTaskSystem(
RunnableFactory runnableFactory,
@ -28,13 +29,14 @@ public abstract class ServerTaskSystem extends TaskSystem {
PlanConfig config,
BootAnalysisTask bootAnalysisTask,
PeriodicAnalysisTask periodicAnalysisTask,
LogsFolderCleanTask logsFolderCleanTask
) {
LogsFolderCleanTask logsFolderCleanTask,
PlayersPageRefreshTask playersPageRefreshTask) {
super(runnableFactory, tpsCountTimer);
this.config = config;
this.bootAnalysisTask = bootAnalysisTask;
this.periodicAnalysisTask = periodicAnalysisTask;
this.logsFolderCleanTask = logsFolderCleanTask;
this.playersPageRefreshTask = playersPageRefreshTask;
}
@Override
@ -62,5 +64,7 @@ public abstract class ServerTaskSystem extends TaskSystem {
config.getNetworkSettings().loadSettingsFromDB();
}
}).runTaskAsynchronously();
registerTask(playersPageRefreshTask)
.runTaskTimerAsynchronously(TimeAmount.toTicks(5L, TimeUnit.MINUTES), TimeAmount.toTicks(5L, TimeUnit.MINUTES));
}
}

View File

@ -29,7 +29,8 @@ public class SpongeTaskSystem extends ServerTaskSystem {
BootAnalysisTask bootAnalysisTask,
PeriodicAnalysisTask periodicAnalysisTask,
PingCountTimerSponge pingCountTimer,
LogsFolderCleanTask logsFolderCleanTask
LogsFolderCleanTask logsFolderCleanTask,
PlayersPageRefreshTask playersPageRefreshTask
) {
super(
runnableFactory,
@ -37,8 +38,8 @@ public class SpongeTaskSystem extends ServerTaskSystem {
config,
bootAnalysisTask,
periodicAnalysisTask,
logsFolderCleanTask
);
logsFolderCleanTask,
playersPageRefreshTask);
this.plugin = plugin;
this.pingCountTimer = pingCountTimer;
}

View File

@ -30,6 +30,7 @@ public class VelocityTaskSystem extends TaskSystem {
private final NetworkPageRefreshTask networkPageRefreshTask;
private final PingCountTimerVelocity pingCountTimer;
private final LogsFolderCleanTask logsFolderCleanTask;
private final PlayersPageRefreshTask playersPageRefreshTask;
@Inject
public VelocityTaskSystem(
@ -39,8 +40,8 @@ public class VelocityTaskSystem extends TaskSystem {
VelocityTPSCountTimer velocityTPSCountTimer,
NetworkPageRefreshTask networkPageRefreshTask,
PingCountTimerVelocity pingCountTimer,
LogsFolderCleanTask logsFolderCleanTask
) {
LogsFolderCleanTask logsFolderCleanTask,
PlayersPageRefreshTask playersPageRefreshTask) {
super(runnableFactory, velocityTPSCountTimer);
this.plugin = plugin;
this.config = config;
@ -48,6 +49,7 @@ public class VelocityTaskSystem extends TaskSystem {
this.networkPageRefreshTask = networkPageRefreshTask;
this.pingCountTimer = pingCountTimer;
this.logsFolderCleanTask = logsFolderCleanTask;
this.playersPageRefreshTask = playersPageRefreshTask;
}
@Override
@ -69,5 +71,8 @@ public class VelocityTaskSystem extends TaskSystem {
plugin.registerListener(pingCountTimer);
long startDelay = TimeAmount.toTicks(config.getNumber(Settings.PING_SERVER_ENABLE_DELAY), TimeUnit.SECONDS);
runnableFactory.create("PingCountTimer", pingCountTimer).runTaskTimer(startDelay, PingCountTimerBungee.PING_INTERVAL);
registerTask(playersPageRefreshTask)
.runTaskTimerAsynchronously(TimeAmount.toTicks(5L, TimeUnit.MINUTES), TimeAmount.toTicks(5L, TimeUnit.MINUTES));
}
}