mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2025-01-15 20:51:21 +01:00
Added settings for removal of TPS and Ping data.
This commit is contained in:
parent
809e821b13
commit
0b3dad1d40
@ -23,7 +23,6 @@ import com.djrapitops.plan.db.access.queries.objects.TPSQueries;
|
|||||||
import com.djrapitops.plan.db.access.transactions.Transaction;
|
import com.djrapitops.plan.db.access.transactions.Transaction;
|
||||||
import com.djrapitops.plan.db.sql.tables.PingTable;
|
import com.djrapitops.plan.db.sql.tables.PingTable;
|
||||||
import com.djrapitops.plan.db.sql.tables.TPSTable;
|
import com.djrapitops.plan.db.sql.tables.TPSTable;
|
||||||
import com.djrapitops.plugin.api.TimeAmount;
|
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
@ -38,11 +37,17 @@ import java.util.UUID;
|
|||||||
public class RemoveOldSampledDataTransaction extends Transaction {
|
public class RemoveOldSampledDataTransaction extends Transaction {
|
||||||
|
|
||||||
private final UUID serverUUID;
|
private final UUID serverUUID;
|
||||||
|
private final long deleteTPSOlderThanMs;
|
||||||
|
private final long deletePingOlderThanMs;
|
||||||
|
|
||||||
public RemoveOldSampledDataTransaction(
|
public RemoveOldSampledDataTransaction(
|
||||||
UUID serverUUID
|
UUID serverUUID,
|
||||||
|
long deleteTPSOlderThanMs,
|
||||||
|
long deletePingOlderThanMs
|
||||||
) {
|
) {
|
||||||
this.serverUUID = serverUUID;
|
this.serverUUID = serverUUID;
|
||||||
|
this.deleteTPSOlderThanMs = deleteTPSOlderThanMs;
|
||||||
|
this.deletePingOlderThanMs = deletePingOlderThanMs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -61,9 +66,7 @@ public class RemoveOldSampledDataTransaction extends Transaction {
|
|||||||
return new ExecStatement(sql) {
|
return new ExecStatement(sql) {
|
||||||
@Override
|
@Override
|
||||||
public void prepare(PreparedStatement statement) throws SQLException {
|
public void prepare(PreparedStatement statement) throws SQLException {
|
||||||
// More than 3 Months ago.
|
statement.setLong(1, System.currentTimeMillis() - deleteTPSOlderThanMs);
|
||||||
long threeMonths = TimeAmount.MONTH.toMillis(3L);
|
|
||||||
statement.setLong(1, System.currentTimeMillis() - threeMonths);
|
|
||||||
statement.setInt(2, allTimePlayerPeak);
|
statement.setInt(2, allTimePlayerPeak);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -77,8 +80,7 @@ public class RemoveOldSampledDataTransaction extends Transaction {
|
|||||||
return new ExecStatement(sql) {
|
return new ExecStatement(sql) {
|
||||||
@Override
|
@Override
|
||||||
public void prepare(PreparedStatement statement) throws SQLException {
|
public void prepare(PreparedStatement statement) throws SQLException {
|
||||||
long twoWeeks = TimeAmount.WEEK.toMillis(2L);
|
statement.setLong(1, System.currentTimeMillis() - deletePingOlderThanMs);
|
||||||
statement.setLong(1, System.currentTimeMillis() - twoWeeks);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,11 @@ public class DBCleanTask extends AbsRunnable {
|
|||||||
Database database = dbSystem.getDatabase();
|
Database database = dbSystem.getDatabase();
|
||||||
try {
|
try {
|
||||||
if (database.getState() != Database.State.CLOSED) {
|
if (database.getState() != Database.State.CLOSED) {
|
||||||
database.executeTransaction(new RemoveOldSampledDataTransaction(serverInfo.getServerUUID()));
|
database.executeTransaction(new RemoveOldSampledDataTransaction(
|
||||||
|
serverInfo.getServerUUID(),
|
||||||
|
config.get(TimeSettings.DELETE_TPS_DATA_AFTER),
|
||||||
|
config.get(TimeSettings.DELETE_PING_DATA_AFTER)
|
||||||
|
));
|
||||||
database.executeTransaction(new RemoveDuplicateUserInfoTransaction());
|
database.executeTransaction(new RemoveDuplicateUserInfoTransaction());
|
||||||
database.executeTransaction(new RemoveUnsatisfiedConditionalPlayerResultsTransaction());
|
database.executeTransaction(new RemoveUnsatisfiedConditionalPlayerResultsTransaction());
|
||||||
database.executeTransaction(new RemoveUnsatisfiedConditionalServerResultsTransaction());
|
database.executeTransaction(new RemoveUnsatisfiedConditionalServerResultsTransaction());
|
||||||
@ -103,7 +107,7 @@ public class DBCleanTask extends AbsRunnable {
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public int cleanOldPlayers(Database database) {
|
public int cleanOldPlayers(Database database) {
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
long keepActiveAfter = now - config.get(TimeSettings.KEEP_INACTIVE_PLAYERS);
|
long keepActiveAfter = now - config.get(TimeSettings.DELETE_INACTIVE_PLAYERS_AFTER);
|
||||||
|
|
||||||
List<UUID> inactivePlayers = database.query(fetchInactivePlayerUUIDs(keepActiveAfter));
|
List<UUID> inactivePlayers = database.query(fetchInactivePlayerUUIDs(keepActiveAfter));
|
||||||
for (UUID uuid : inactivePlayers) {
|
for (UUID uuid : inactivePlayers) {
|
||||||
|
@ -35,7 +35,9 @@ public class TimeSettings {
|
|||||||
public static final Setting<Long> AFK_THRESHOLD = new TimeSetting("Time.Thresholds.AFK_threshold");
|
public static final Setting<Long> AFK_THRESHOLD = new TimeSetting("Time.Thresholds.AFK_threshold");
|
||||||
public static final Setting<Integer> ACTIVE_LOGIN_THRESHOLD = new IntegerSetting("Time.Thresholds.Activity_index.Login_threshold", Setting::timeValidator);
|
public static final Setting<Integer> ACTIVE_LOGIN_THRESHOLD = new IntegerSetting("Time.Thresholds.Activity_index.Login_threshold", Setting::timeValidator);
|
||||||
public static final Setting<Long> ACTIVE_PLAY_THRESHOLD = new TimeSetting("Time.Thresholds.Activity_index.Playtime_threshold");
|
public static final Setting<Long> ACTIVE_PLAY_THRESHOLD = new TimeSetting("Time.Thresholds.Activity_index.Playtime_threshold");
|
||||||
public static final Setting<Long> KEEP_INACTIVE_PLAYERS = new TimeSetting("Time.Thresholds.Remove_inactive_player_data_after");
|
public static final Setting<Long> DELETE_INACTIVE_PLAYERS_AFTER = new TimeSetting("Time.Thresholds.Remove_inactive_player_data_after");
|
||||||
|
public static final Setting<Long> DELETE_TPS_DATA_AFTER = new TimeSetting("Time.Thresholds.Remove_time_series_data_after");
|
||||||
|
public static final Setting<Long> DELETE_PING_DATA_AFTER = new TimeSetting("Time.Thresholds.Remove_ping_data_after");
|
||||||
public static final Setting<Long> ANALYSIS_REFRESH_PERIOD = new TimeSetting("Time.Periodic_tasks.Analysis_refresh_every");
|
public static final Setting<Long> ANALYSIS_REFRESH_PERIOD = new TimeSetting("Time.Periodic_tasks.Analysis_refresh_every");
|
||||||
public static final Setting<Long> EXTENSION_DATA_REFRESH_PERIOD = new TimeSetting("Time.Periodic_tasks.Extension_data_refresh_every");
|
public static final Setting<Long> EXTENSION_DATA_REFRESH_PERIOD = new TimeSetting("Time.Periodic_tasks.Extension_data_refresh_every");
|
||||||
public static final Setting<Long> CLEAN_CACHE_PERIOD = new TimeSetting("Time.Periodic_tasks.Clean_caches_every");
|
public static final Setting<Long> CLEAN_CACHE_PERIOD = new TimeSetting("Time.Periodic_tasks.Clean_caches_every");
|
||||||
|
@ -85,6 +85,11 @@ Time:
|
|||||||
Unit: MINUTES
|
Unit: MINUTES
|
||||||
Remove_inactive_player_data_after: 180
|
Remove_inactive_player_data_after: 180
|
||||||
Unit: DAYS
|
Unit: DAYS
|
||||||
|
# Includes players online, tps and performance time series
|
||||||
|
Remove_time_series_data_after: 90
|
||||||
|
Unit: DAYS
|
||||||
|
Remove_ping_data_after: 14
|
||||||
|
Unit: DAYS
|
||||||
Periodic_tasks:
|
Periodic_tasks:
|
||||||
Extension_data_refresh_every: 1
|
Extension_data_refresh_every: 1
|
||||||
Unit: HOURS
|
Unit: HOURS
|
||||||
|
@ -90,6 +90,11 @@ Time:
|
|||||||
Unit: MINUTES
|
Unit: MINUTES
|
||||||
Remove_inactive_player_data_after: 180
|
Remove_inactive_player_data_after: 180
|
||||||
Unit: DAYS
|
Unit: DAYS
|
||||||
|
# Includes players online, tps and performance time series
|
||||||
|
Remove_time_series_data_after: 90
|
||||||
|
Unit: DAYS
|
||||||
|
Remove_ping_data_after: 14
|
||||||
|
Unit: DAYS
|
||||||
Periodic_tasks:
|
Periodic_tasks:
|
||||||
Analysis_refresh_every: 60
|
Analysis_refresh_every: 60
|
||||||
Unit: MINUTES
|
Unit: MINUTES
|
||||||
|
Loading…
Reference in New Issue
Block a user