mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2025-02-05 16:30:24 +08:00
Task for JSONCache cleanup
This commit is contained in:
parent
5b3f08f870
commit
3f8a3d1521
@ -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));
|
||||
|
@ -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(
|
||||
|
@ -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";
|
||||
|
@ -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) {
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
@ -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));
|
||||
|
@ -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(
|
||||
|
Loading…
Reference in New Issue
Block a user