Skip to content

Commit 927ef6e

Browse files
committed
ignore all dirs based on their path and the ttl
1 parent ef0a102 commit 927ef6e

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

src/main/java/com/lowtuna/jsonblob/core/BlobCleanupJob.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import java.io.File;
1010
import java.nio.file.Files;
1111
import java.nio.file.Path;
12+
import java.time.LocalDate;
1213
import java.util.List;
1314
import java.util.concurrent.ExecutorService;
14-
import java.util.stream.Collectors;
1515

1616
@Slf4j
1717
@RequiredArgsConstructor
@@ -25,14 +25,10 @@ public class BlobCleanupJob implements Runnable {
2525

2626
@Override
2727
public void run() {
28-
if (true) {
29-
return;
30-
}
31-
3228
try {
3329
List<String> dataDirs = Lists.newCopyOnWriteArrayList();
3430

35-
Files.find(blobDirectory, 3, (p, bfa) -> !bfa.isRegularFile())
31+
Files.find(blobDirectory, 4, (p, bfa) -> !bfa.isRegularFile() && isDataDir(p.toFile().getAbsolutePath()))
3632
.forEach(dataDir -> dataDirs.add(dataDir.toFile().getAbsolutePath()));
3733

3834
log.debug("Found {} data directories", dataDirs.size());
@@ -44,11 +40,21 @@ public void run() {
4440
dir.delete();
4541
}
4642

47-
log.debug("Submitting DataDirectoryCleanupJob for {}", dataDirPath);
48-
executorService.submit(new DataDirectoryCleanupJob(dataDirPath, executorService, fileSystemJsonBlobManager,blobAccessTtl, om, deleteEnabled));
43+
String[] dateParts = dataDirPath.replace(blobDirectory.toFile().getAbsolutePath(), "").split("/", 4);
44+
45+
LocalDate localDate = LocalDate.of(Integer.parseInt(dateParts[1]), Integer.parseInt(dateParts[2]), Integer.parseInt(dateParts[3]));
46+
47+
if (localDate.isBefore(LocalDate.now().minusDays(blobAccessTtl.toDays()))) {
48+
log.debug("Submitting DataDirectoryCleanupJob for {}", dataDirPath);
49+
executorService.submit(new DataDirectoryCleanupJob(dataDirPath, executorService, fileSystemJsonBlobManager, blobAccessTtl, om, deleteEnabled));
50+
}
4951
}
5052
} catch (Exception e) {
5153
log.warn("Couldn't remove old blobs", e);
5254
}
5355
}
56+
57+
private boolean isDataDir(String path) {
58+
return path.replace(blobDirectory.toFile().getAbsolutePath(), "").split("/").length == 4;
59+
}
5460
}

src/test/java/com/lowtuna/jsonblob/core/BlobCleanupJobTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class BlobCleanupJobTest {
3030
TEMP = dir;
3131
}
3232

33-
private final Duration blobTtl = Duration.minutes(1);
33+
private final Duration blobTtl = Duration.days(1);
3434

3535
private FileSystemJsonBlobManager blobManager;
3636

0 commit comments

Comments
 (0)