Task for JSONCache cleanup

This commit is contained in:
Rsl1122 2019-08-31 12:22:00 +03:00
parent 5b3f08f870
commit 3f8a3d1521
7 changed files with 42 additions and 10 deletions

View File

@ -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));

View File

@ -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(

View File

@ -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";

View File

@ -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<Response> 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) {

View File

@ -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();
}
}
}

View File

@ -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));

View File

@ -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(