mirror of
https://github.com/boy0001/FastAsyncWorldedit.git
synced 2024-09-30 07:57:36 +02:00
Delete old history
This commit is contained in:
parent
01d5601b5b
commit
bdec0b7ef4
@ -10,6 +10,7 @@ import com.boydti.fawe.config.Settings;
|
|||||||
import com.boydti.fawe.object.FawePlayer;
|
import com.boydti.fawe.object.FawePlayer;
|
||||||
import com.boydti.fawe.regions.general.PlotSquaredFeature;
|
import com.boydti.fawe.regions.general.PlotSquaredFeature;
|
||||||
import com.boydti.fawe.util.Lag;
|
import com.boydti.fawe.util.Lag;
|
||||||
|
import com.boydti.fawe.util.MainUtil;
|
||||||
import com.boydti.fawe.util.MemUtil;
|
import com.boydti.fawe.util.MemUtil;
|
||||||
import com.boydti.fawe.util.TaskManager;
|
import com.boydti.fawe.util.TaskManager;
|
||||||
import com.boydti.fawe.util.WEManager;
|
import com.boydti.fawe.util.WEManager;
|
||||||
@ -43,6 +44,7 @@ import java.lang.management.MemoryPoolMXBean;
|
|||||||
import java.lang.management.MemoryUsage;
|
import java.lang.management.MemoryUsage;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import javax.management.InstanceAlreadyExistsException;
|
import javax.management.InstanceAlreadyExistsException;
|
||||||
import javax.management.Notification;
|
import javax.management.Notification;
|
||||||
import javax.management.NotificationEmitter;
|
import javax.management.NotificationEmitter;
|
||||||
@ -143,12 +145,13 @@ public class Fawe {
|
|||||||
|
|
||||||
private Fawe(final IFawe implementation) {
|
private Fawe(final IFawe implementation) {
|
||||||
this.IMP = implementation;
|
this.IMP = implementation;
|
||||||
|
|
||||||
this.thread = Thread.currentThread();
|
this.thread = Thread.currentThread();
|
||||||
/*
|
/*
|
||||||
* Implementation dependent stuff
|
* Implementation dependent stuff
|
||||||
*/
|
*/
|
||||||
this.setupConfigs();
|
this.setupConfigs();
|
||||||
|
MainUtil.deleteOlder(new File(IMP.getDirectory(), "history"), TimeUnit.DAYS.toMillis(Settings.DELETE_HISTORY_AFTER_DAYS));
|
||||||
|
|
||||||
this.setupCommands();
|
this.setupCommands();
|
||||||
|
|
||||||
// TODO command event - queue?
|
// TODO command event - queue?
|
||||||
|
@ -21,6 +21,7 @@ public class Settings {
|
|||||||
public static long MEM_FREE = 95;
|
public static long MEM_FREE = 95;
|
||||||
public static boolean ENABLE_HARD_LIMIT = true;
|
public static boolean ENABLE_HARD_LIMIT = true;
|
||||||
public static boolean STORE_HISTORY_ON_DISK = false;
|
public static boolean STORE_HISTORY_ON_DISK = false;
|
||||||
|
public static int DELETE_HISTORY_AFTER_DAYS = 7;
|
||||||
public static int COMPRESSION_LEVEL = 0;
|
public static int COMPRESSION_LEVEL = 0;
|
||||||
public static int BUFFER_SIZE = 531441;
|
public static int BUFFER_SIZE = 531441;
|
||||||
public static boolean METRICS = true;
|
public static boolean METRICS = true;
|
||||||
@ -79,6 +80,7 @@ public class Settings {
|
|||||||
options.put("history.compress", false);
|
options.put("history.compress", false);
|
||||||
options.put("history.chunk-wait-ms", CHUNK_WAIT);
|
options.put("history.chunk-wait-ms", CHUNK_WAIT);
|
||||||
options.put("history.buffer-size", BUFFER_SIZE);
|
options.put("history.buffer-size", BUFFER_SIZE);
|
||||||
|
options.put("history.delete-after-days", DELETE_HISTORY_AFTER_DAYS);
|
||||||
options.put("region-restrictions", REGION_RESTRICTIONS);
|
options.put("region-restrictions", REGION_RESTRICTIONS);
|
||||||
options.put("queue.extra-time-ms", ALLOCATE);
|
options.put("queue.extra-time-ms", ALLOCATE);
|
||||||
options.put("queue.target-size", QUEUE_SIZE);
|
options.put("queue.target-size", QUEUE_SIZE);
|
||||||
@ -112,6 +114,7 @@ public class Settings {
|
|||||||
REGION_RESTRICTIONS = config.getBoolean("region-restrictions");
|
REGION_RESTRICTIONS = config.getBoolean("region-restrictions");
|
||||||
METRICS = config.getBoolean("metrics");
|
METRICS = config.getBoolean("metrics");
|
||||||
COMPRESSION_LEVEL = config.getInt("history.compression-level", config.getBoolean("history.compress") ? 1 : 0);
|
COMPRESSION_LEVEL = config.getInt("history.compression-level", config.getBoolean("history.compress") ? 1 : 0);
|
||||||
|
DELETE_HISTORY_AFTER_DAYS = config.getInt("history.delete-after-days");
|
||||||
BUFFER_SIZE = config.getInt("history.buffer-size", BUFFER_SIZE);
|
BUFFER_SIZE = config.getInt("history.buffer-size", BUFFER_SIZE);
|
||||||
CHUNK_WAIT = config.getInt("history.chunk-wait-ms");
|
CHUNK_WAIT = config.getInt("history.chunk-wait-ms");
|
||||||
ALLOCATE = config.getInt("queue.extra-time-ms");
|
ALLOCATE = config.getInt("queue.extra-time-ms");
|
||||||
|
@ -3,6 +3,7 @@ package com.boydti.fawe.util;
|
|||||||
import com.boydti.fawe.Fawe;
|
import com.boydti.fawe.Fawe;
|
||||||
import com.boydti.fawe.config.BBC;
|
import com.boydti.fawe.config.BBC;
|
||||||
import com.boydti.fawe.object.FawePlayer;
|
import com.boydti.fawe.object.FawePlayer;
|
||||||
|
import com.boydti.fawe.object.RunnableVal;
|
||||||
import com.sk89q.jnbt.CompoundTag;
|
import com.sk89q.jnbt.CompoundTag;
|
||||||
import com.sk89q.jnbt.EndTag;
|
import com.sk89q.jnbt.EndTag;
|
||||||
import com.sk89q.jnbt.ListTag;
|
import com.sk89q.jnbt.ListTag;
|
||||||
@ -34,15 +35,46 @@ public class MainUtil {
|
|||||||
Fawe.debug(s);
|
Fawe.debug(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean deleteDirectory(File directory) {
|
public static void iterateFiles(File directory, RunnableVal<File> task) {
|
||||||
if (directory.exists()) {
|
if (directory.exists()) {
|
||||||
File[] files = directory.listFiles();
|
File[] files = directory.listFiles();
|
||||||
if (null != files) {
|
if (null != files) {
|
||||||
for (int i = 0; i < files.length; i++) {
|
for (int i = 0; i < files.length; i++) {
|
||||||
if (files[i].isDirectory()) {
|
if (files[i].isDirectory()) {
|
||||||
|
iterateFiles(files[i], task);
|
||||||
|
} else {
|
||||||
|
task.run(files[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void deleteOlder(File directory, final long timeDiff) {
|
||||||
|
final long now = System.currentTimeMillis();
|
||||||
|
iterateFiles(directory, new RunnableVal<File>() {
|
||||||
|
@Override
|
||||||
|
public void run(File file) {
|
||||||
|
long age = now - file.lastModified();
|
||||||
|
if (age > timeDiff) {
|
||||||
|
System.out.println("Deleting file: " + file);
|
||||||
|
file.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean deleteDirectory(File directory) {
|
||||||
|
if (directory.exists()) {
|
||||||
|
File[] files = directory.listFiles();
|
||||||
|
if (null != files) {
|
||||||
|
for (int i = 0; i < files.length; i++) {
|
||||||
|
File file = files[i];
|
||||||
|
if (file.isDirectory()) {
|
||||||
deleteDirectory(files[i]);
|
deleteDirectory(files[i]);
|
||||||
} else {
|
} else {
|
||||||
files[i].delete();
|
System.out.println("Deleting file: " + file);
|
||||||
|
file.delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user