From 3f8a3d1521585068c862b0ef2c8f28b87addb408 Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Sat, 31 Aug 2019 12:22:00 +0300 Subject: [PATCH] Task for JSONCache cleanup --- .../com/djrapitops/plan/BukkitTaskSystem.java | 6 ++++++ .../com/djrapitops/plan/BungeeTaskSystem.java | 6 ++++++ .../com/djrapitops/plan/DebugChannels.java | 7 ------- .../delivery/webserver/RequestHandler.java | 3 --- .../delivery/webserver/cache/JSONCache.java | 18 ++++++++++++++++++ .../com/djrapitops/plan/SpongeTaskSystem.java | 6 ++++++ .../djrapitops/plan/VelocityTaskSystem.java | 6 ++++++ 7 files changed, 42 insertions(+), 10 deletions(-) diff --git a/Plan/bukkit/src/main/java/com/djrapitops/plan/BukkitTaskSystem.java b/Plan/bukkit/src/main/java/com/djrapitops/plan/BukkitTaskSystem.java index c851ae045..2c1962414 100644 --- a/Plan/bukkit/src/main/java/com/djrapitops/plan/BukkitTaskSystem.java +++ b/Plan/bukkit/src/main/java/com/djrapitops/plan/BukkitTaskSystem.java @@ -17,6 +17,7 @@ package com.djrapitops.plan; import com.djrapitops.plan.delivery.upkeep.PeriodicServerExportTask; +import com.djrapitops.plan.delivery.webserver.cache.JSONCache; import com.djrapitops.plan.extension.ExtensionServerMethodCallerTask; import com.djrapitops.plan.gathering.ShutdownHook; import com.djrapitops.plan.gathering.timed.BukkitPingCounter; @@ -50,6 +51,7 @@ public class BukkitTaskSystem extends TaskSystem { private final Plan plugin; private final PlanConfig config; private final ShutdownHook shutdownHook; + private final JSONCache.CleanTask jsonCacheCleanTask; private final PeriodicServerExportTask periodicServerExportTask; private final LogsFolderCleanTask logsFolderCleanTask; private final BukkitPingCounter pingCounter; @@ -73,6 +75,7 @@ public class BukkitTaskSystem extends TaskSystem { LogsFolderCleanTask logsFolderCleanTask, ConfigStoreTask configStoreTask, DBCleanTask dbCleanTask, + JSONCache.CleanTask jsonCacheCleanTask, PeriodicServerExportTask periodicServerExportTask ) { @@ -80,6 +83,7 @@ public class BukkitTaskSystem extends TaskSystem { this.plugin = plugin; this.config = config; this.shutdownHook = shutdownHook; + this.jsonCacheCleanTask = jsonCacheCleanTask; this.tpsCounter = Check.isPaperAvailable() ? paperTPSCountTimer : bukkitTPSCountTimer; this.pingCounter = pingCounter; @@ -111,6 +115,8 @@ public class BukkitTaskSystem extends TaskSystem { TimeAmount.toTicks(20, TimeUnit.SECONDS), TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS) ); + long minute = TimeAmount.toTicks(1, TimeUnit.MINUTES); + registerTask(jsonCacheCleanTask).runTaskTimerAsynchronously(minute, minute); if (config.get(ExportSettings.SERVER_PAGE)) { registerTask(periodicServerExportTask).runTaskTimerAsynchronously(TimeAmount.toTicks(30L, TimeUnit.SECONDS), TimeAmount.toTicks(20L, TimeUnit.MINUTES)); diff --git a/Plan/bungeecord/src/main/java/com/djrapitops/plan/BungeeTaskSystem.java b/Plan/bungeecord/src/main/java/com/djrapitops/plan/BungeeTaskSystem.java index 6b8aa00c2..63c4582d1 100644 --- a/Plan/bungeecord/src/main/java/com/djrapitops/plan/BungeeTaskSystem.java +++ b/Plan/bungeecord/src/main/java/com/djrapitops/plan/BungeeTaskSystem.java @@ -16,6 +16,7 @@ */ package com.djrapitops.plan; +import com.djrapitops.plan.delivery.webserver.cache.JSONCache; import com.djrapitops.plan.extension.ExtensionServerMethodCallerTask; import com.djrapitops.plan.gathering.timed.BungeePingCounter; import com.djrapitops.plan.gathering.timed.BungeeTPSCounter; @@ -47,6 +48,7 @@ public class BungeeTaskSystem extends TaskSystem { private final LogsFolderCleanTask logsFolderCleanTask; private final NetworkConfigStoreTask networkConfigStoreTask; private final DBCleanTask dbCleanTask; + private final JSONCache.CleanTask jsonCacheCleanTask; private final ExtensionServerMethodCallerTask extensionServerMethodCallerTask; @Inject @@ -59,6 +61,7 @@ public class BungeeTaskSystem extends TaskSystem { LogsFolderCleanTask logsFolderCleanTask, NetworkConfigStoreTask networkConfigStoreTask, DBCleanTask dbCleanTask, + JSONCache.CleanTask jsonCacheCleanTask, ExtensionServerMethodCallerTask extensionServerMethodCallerTask ) { super(runnableFactory); @@ -70,6 +73,7 @@ public class BungeeTaskSystem extends TaskSystem { this.logsFolderCleanTask = logsFolderCleanTask; this.networkConfigStoreTask = networkConfigStoreTask; this.dbCleanTask = dbCleanTask; + this.jsonCacheCleanTask = jsonCacheCleanTask; this.extensionServerMethodCallerTask = extensionServerMethodCallerTask; } @@ -97,6 +101,8 @@ public class BungeeTaskSystem extends TaskSystem { TimeAmount.toTicks(20, TimeUnit.SECONDS), TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS) ); + long minute = TimeAmount.toTicks(1, TimeUnit.MINUTES); + registerTask(jsonCacheCleanTask).runTaskTimerAsynchronously(minute, minute); long extensionRefreshPeriod = TimeAmount.toTicks(config.get(TimeSettings.EXTENSION_DATA_REFRESH_PERIOD), TimeUnit.MILLISECONDS); registerTask(extensionServerMethodCallerTask).runTaskTimerAsynchronously( diff --git a/Plan/common/src/main/java/com/djrapitops/plan/DebugChannels.java b/Plan/common/src/main/java/com/djrapitops/plan/DebugChannels.java index 95c85455b..04147a6e5 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/DebugChannels.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/DebugChannels.java @@ -28,13 +28,6 @@ public class DebugChannels { /* Static variable class */ } - public static final String ANALYSIS = "Analysis"; - @Deprecated - public static final String INFO_REQUESTS = "InfoRequests"; - @Deprecated - public static final String CONNECTIONS = "Connections"; - @Deprecated - public static final String WEB_REQUESTS = "Web Requests"; public static final String IMPORTING = "Importing"; public static final String SQL = "SQL"; public static final String DATA_EXTENSIONS = "DataExtensions"; diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/RequestHandler.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/RequestHandler.java index 989772b81..952016ea1 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/RequestHandler.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/RequestHandler.java @@ -16,7 +16,6 @@ */ package com.djrapitops.plan.delivery.webserver; -import com.djrapitops.plan.DebugChannels; import com.djrapitops.plan.delivery.webserver.auth.Authentication; import com.djrapitops.plan.delivery.webserver.auth.BasicAuthentication; import com.djrapitops.plan.delivery.webserver.response.PromptAuthorizationResponse; @@ -102,7 +101,6 @@ public class RequestHandler implements HttpHandler { // Increase attempt count and block if too high Optional forbid = handlePasswordBruteForceAttempts(request, response); if (forbid.isPresent()) { - logger.getDebugLogger().logOn(DebugChannels.WEB_REQUESTS, "Blocked: " + request.getTargetString() + " -> " + request.getRemoteAddress()); response = forbid.get(); } @@ -111,7 +109,6 @@ public class RequestHandler implements HttpHandler { responseHeaders.set("WWW-Authenticate", response.getHeader("WWW-Authenticate").orElse("Basic realm=\"Plan WebUser (/plan register)\"")); } - logger.getDebugLogger().logOn(DebugChannels.WEB_REQUESTS, "Sending: " + request.getTargetString() + " -> " + request.getRemoteAddress()); response.setResponseHeaders(responseHeaders); response.send(exchange, locale, theme); } catch (Exception e) { diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/cache/JSONCache.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/cache/JSONCache.java index 5f25b47aa..13119ce90 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/cache/JSONCache.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/cache/JSONCache.java @@ -18,10 +18,14 @@ package com.djrapitops.plan.delivery.webserver.cache; import com.djrapitops.plan.delivery.webserver.response.Response; import com.djrapitops.plan.delivery.webserver.response.data.JSONResponse; +import com.djrapitops.plan.storage.file.ResourceCache; +import com.djrapitops.plugin.task.AbsRunnable; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; import org.apache.commons.lang3.StringUtils; +import javax.inject.Inject; +import javax.inject.Singleton; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.function.Supplier; @@ -113,4 +117,18 @@ public class JSONCache { Collections.sort(identifiers); return identifiers; } + + @Singleton + public static class CleanTask extends AbsRunnable { + + @Inject + public CleanTask() { + } + + @Override + public void run() { + cleanUp(); + ResourceCache.cleanUp(); + } + } } \ No newline at end of file diff --git a/Plan/sponge/src/main/java/com/djrapitops/plan/SpongeTaskSystem.java b/Plan/sponge/src/main/java/com/djrapitops/plan/SpongeTaskSystem.java index e346763dc..d34c2a7ef 100644 --- a/Plan/sponge/src/main/java/com/djrapitops/plan/SpongeTaskSystem.java +++ b/Plan/sponge/src/main/java/com/djrapitops/plan/SpongeTaskSystem.java @@ -17,6 +17,7 @@ package com.djrapitops.plan; import com.djrapitops.plan.delivery.upkeep.PeriodicServerExportTask; +import com.djrapitops.plan.delivery.webserver.cache.JSONCache; import com.djrapitops.plan.extension.ExtensionServerMethodCallerTask; import com.djrapitops.plan.gathering.ShutdownHook; import com.djrapitops.plan.gathering.timed.SpongePingCounter; @@ -44,6 +45,7 @@ public class SpongeTaskSystem extends TaskSystem { private final PlanConfig config; private final ShutdownHook shutdownHook; private final SpongeTPSCounter tpsCounter; + private final JSONCache.CleanTask jsonCacheCleanTask; private final PeriodicServerExportTask periodicServerExportTask; private final SpongePingCounter pingCounter; private final LogsFolderCleanTask logsFolderCleanTask; @@ -65,6 +67,7 @@ public class SpongeTaskSystem extends TaskSystem { LogsFolderCleanTask logsFolderCleanTask, ConfigStoreTask configStoreTask, DBCleanTask dbCleanTask, + JSONCache.CleanTask jsonCacheCleanTask, PeriodicServerExportTask periodicServerExportTask ) { @@ -80,6 +83,7 @@ public class SpongeTaskSystem extends TaskSystem { this.logsFolderCleanTask = logsFolderCleanTask; this.configStoreTask = configStoreTask; this.dbCleanTask = dbCleanTask; + this.jsonCacheCleanTask = jsonCacheCleanTask; this.periodicServerExportTask = periodicServerExportTask; } @@ -103,6 +107,8 @@ public class SpongeTaskSystem extends TaskSystem { TimeAmount.toTicks(20, TimeUnit.SECONDS), TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS) ); + long minute = TimeAmount.toTicks(1, TimeUnit.MINUTES); + registerTask(jsonCacheCleanTask).runTaskTimerAsynchronously(minute, minute); if (config.get(ExportSettings.SERVER_PAGE)) { registerTask(periodicServerExportTask).runTaskTimerAsynchronously(TimeAmount.toTicks(30L, TimeUnit.SECONDS), TimeAmount.toTicks(20L, TimeUnit.MINUTES)); diff --git a/Plan/velocity/src/main/java/com/djrapitops/plan/VelocityTaskSystem.java b/Plan/velocity/src/main/java/com/djrapitops/plan/VelocityTaskSystem.java index c69511b49..0b55ed44e 100644 --- a/Plan/velocity/src/main/java/com/djrapitops/plan/VelocityTaskSystem.java +++ b/Plan/velocity/src/main/java/com/djrapitops/plan/VelocityTaskSystem.java @@ -16,6 +16,7 @@ */ package com.djrapitops.plan; +import com.djrapitops.plan.delivery.webserver.cache.JSONCache; import com.djrapitops.plan.extension.ExtensionServerMethodCallerTask; import com.djrapitops.plan.gathering.timed.VelocityPingCounter; import com.djrapitops.plan.gathering.timed.VelocityTPSCounter; @@ -47,6 +48,7 @@ public class VelocityTaskSystem extends TaskSystem { private final LogsFolderCleanTask logsFolderCleanTask; private final NetworkConfigStoreTask networkConfigStoreTask; private final DBCleanTask dbCleanTask; + private final JSONCache.CleanTask jsonCacheCleanTask; private final ExtensionServerMethodCallerTask extensionServerMethodCallerTask; @Inject @@ -59,6 +61,7 @@ public class VelocityTaskSystem extends TaskSystem { LogsFolderCleanTask logsFolderCleanTask, NetworkConfigStoreTask networkConfigStoreTask, DBCleanTask dbCleanTask, + JSONCache.CleanTask jsonCacheCleanTask, ExtensionServerMethodCallerTask extensionServerMethodCallerTask ) { super(runnableFactory); @@ -69,6 +72,7 @@ public class VelocityTaskSystem extends TaskSystem { this.logsFolderCleanTask = logsFolderCleanTask; this.networkConfigStoreTask = networkConfigStoreTask; this.dbCleanTask = dbCleanTask; + this.jsonCacheCleanTask = jsonCacheCleanTask; this.extensionServerMethodCallerTask = extensionServerMethodCallerTask; } @@ -96,6 +100,8 @@ public class VelocityTaskSystem extends TaskSystem { TimeAmount.toTicks(20, TimeUnit.SECONDS), TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS) ); + long minute = TimeAmount.toTicks(1, TimeUnit.MINUTES); + registerTask(jsonCacheCleanTask).runTaskTimerAsynchronously(minute, minute); long extensionRefreshPeriod = TimeAmount.toTicks(config.get(TimeSettings.EXTENSION_DATA_REFRESH_PERIOD), TimeUnit.MILLISECONDS); registerTask(extensionServerMethodCallerTask).runTaskTimerAsynchronously(