feat: Make schedule remove unused plugins

This commit is contained in:
Minecon724 2025-02-16 09:05:46 +01:00
parent d08dd3777a
commit 81057bf104
Signed by: Minecon724
GPG key ID: 3CCC4D267742C8E8
2 changed files with 20 additions and 12 deletions

View file

@ -1,9 +1,15 @@
package eu.m724.mstats; package eu.m724.mstats;
import eu.m724.mstats.api.service.PluginService; import eu.m724.mstats.api.service.PluginService;
import eu.m724.mstats.orm.PluginVersion;
import eu.m724.mstats.orm.Server;
import io.quarkus.runtime.StartupEvent; import io.quarkus.runtime.StartupEvent;
import io.quarkus.scheduler.Scheduled;
import jakarta.enterprise.event.Observes; import jakarta.enterprise.event.Observes;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.transaction.Transactional;
import java.time.LocalDateTime;
public class Startup { public class Startup {
@Inject @Inject
@ -12,4 +18,18 @@ public class Startup {
public void onStartup(@Observes StartupEvent event) { public void onStartup(@Observes StartupEvent event) {
} }
// TODO move to a more appropriate class
@Transactional
@Scheduled(every="30m")
public void cleanUp() {
System.out.println("Cleanup running");
LocalDateTime limit = LocalDateTime.now().minusHours(2);
long deleted = Server.delete("lastHeartbeat < ?1", limit);
System.out.printf("Deleted %d inactive servers\n", deleted);
deleted = PluginVersion.delete("servers is empty");
System.out.printf("Deleted %d unused plugins\n", deleted);
}
} }

View file

@ -3,7 +3,6 @@ package eu.m724.mstats.api.service;
import eu.m724.mstats.api.resource.ServerApiResource; import eu.m724.mstats.api.resource.ServerApiResource;
import eu.m724.mstats.orm.Plugin; import eu.m724.mstats.orm.Plugin;
import eu.m724.mstats.orm.Server; import eu.m724.mstats.orm.Server;
import io.quarkus.scheduler.Scheduled;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
@ -50,15 +49,4 @@ public class ServerService {
server.lastHeartbeat = LocalDateTime.now(); server.lastHeartbeat = LocalDateTime.now();
server.persistAndFlush(); server.persistAndFlush();
} }
@Transactional
@Scheduled(every="30m")
public void cleanUp() {
System.out.println("Cleanup running");
LocalDateTime now = LocalDateTime.now().minusHours(2);
long deleted = Server.delete("lastHeartbeat < ?1", now);
System.out.printf("Deleted %d servers\n", deleted);
}
} }