Skooldown/src/lt/govindas/skooldown/utilities/CleanupTimer.java

40 lines
1.1 KiB
Java

package lt.govindas.skooldown.utilities;
import lt.govindas.skooldown.Skooldown;
import java.util.Iterator;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
public class CleanupTimer {
//Hourly Timer to prevent memory leaks
public CleanupTimer() {
Timer timer = new Timer();
TimerTask hourlyTask = new TimerTask() {
int i = 0;
@Override
public void run() {
Iterator it = Skooldown.cooldowns.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry) it.next();
long value = (long) pair.getValue();
if (value < System.currentTimeMillis()) {
i++;
it.remove();
}
}
if (i > 0) {
System.out.println("[Skooldown Hourly Memory Cleanup] " + i + " finished cooldowns cleared from memory.");
}
}
};
//hourly schedule
timer.schedule(hourlyTask, 100, 1000 * 60 * 60);
}
}