Fixed auto file cleanup not working

This commit is contained in:
Max W. 2024-06-09 11:23:51 +02:00
parent f65a0d0e22
commit 4134367350
2 changed files with 10 additions and 5 deletions

View File

@ -38,7 +38,7 @@ public class FileUploadRepository {
Type type = new TypeToken<Map<String, Object>>(){}.getType(); Type type = new TypeToken<Map<String, Object>>(){}.getType();
Map<String, Object> map = gson.fromJson(json, type); Map<String, Object> map = gson.fromJson(json, type);
long uploadDateTimestamp = fileUpload.getUploadDate().getTime() / 1000; long uploadDateTimestamp = fileUpload.getUploadDate().getTime();
map.put("uploadDate", uploadDateTimestamp); map.put("uploadDate", uploadDateTimestamp);
r.db("sharepulse").table("file_uploads").insert(map).run(connection); r.db("sharepulse").table("file_uploads").insert(map).run(connection);
@ -54,7 +54,12 @@ public class FileUploadRepository {
} catch (NoSuchElementException e) { } catch (NoSuchElementException e) {
return Optional.empty(); return Optional.empty();
} }
}
public List<FileUpload> findAll() {
return r.db("sharepulse").table("file_uploads")
.run(connection, FileUpload.class)
.toList();
} }
public void updateFileUpload(FileUpload updatedFileUpload) { public void updateFileUpload(FileUpload updatedFileUpload) {
@ -63,7 +68,7 @@ public class FileUploadRepository {
Type type = new TypeToken<Map<String, Object>>(){}.getType(); Type type = new TypeToken<Map<String, Object>>(){}.getType();
Map<String, Object> map = gson.fromJson(json, type); Map<String, Object> map = gson.fromJson(json, type);
long uploadDateTimestamp = updatedFileUpload.getUploadDate().getTime() / 1000; long uploadDateTimestamp = updatedFileUpload.getUploadDate().getTime();
map.put("uploadDate", uploadDateTimestamp); map.put("uploadDate", uploadDateTimestamp);
String fileId = updatedFileUpload.getFileId(); String fileId = updatedFileUpload.getFileId();
@ -83,11 +88,10 @@ public class FileUploadRepository {
public List<FileUpload> getAllExpiredFileUploads() { public List<FileUpload> getAllExpiredFileUploads() {
long timestamp = getTimestamp24HoursAgo(); long timestamp = getTimestamp24HoursAgo();
List<FileUpload> olderFiles = r.db("sharepulse").table("file_uploads") return r.db("sharepulse").table("file_uploads")
.filter(row -> row.g("uploadDate").lt(timestamp)) .filter(row -> row.g("uploadDate").lt(timestamp))
.run(connection, FileUpload.class) .run(connection, FileUpload.class)
.toList(); .toList();
return olderFiles;
} }
private long getTimestamp24HoursAgo() { private long getTimestamp24HoursAgo() {

View File

@ -23,10 +23,11 @@ public class FileCleanupService {
this.fileService = fileService; this.fileService = fileService;
} }
//@Scheduled(cron = "*/10 * * * * *") // every 10 seconds
@Scheduled(cron = "0 0 * * * *") @Scheduled(cron = "0 0 * * * *")
public void cleanup() { public void cleanup() {
log.debug("Running cleanup..."); log.debug("Running cleanup...");
List<FileUpload> expFileUploads = fileUploadRepository.findAllExpiredActiveFileUploads(); List<FileUpload> expFileUploads = fileUploadRepository.getAllExpiredFileUploads();
for (FileUpload fileUpload : expFileUploads) { for (FileUpload fileUpload : expFileUploads) {
fileService.deleteFile(fileUpload); fileService.deleteFile(fileUpload);
expiredFileUploadRepository.insertExpiredFileUpload(fileUpload); expiredFileUploadRepository.insertExpiredFileUpload(fileUpload);