Write fatal errors to logs, view logs, clear tmp folder

This commit is contained in:
Guntis Smaukstelis
2025-03-16 15:38:11 +02:00
parent 329776b67f
commit b44364d9a6
4 changed files with 74 additions and 3 deletions
+20
View File
@@ -120,6 +120,7 @@ class DataService(log: Logger[IO]) {
for {
_ <- log.info("start cleanup")
// _ <- IO.raiseError[Unit](new RuntimeException("Test error in deleteOldForecasts"))
fileList <- getFileList()
fileDateList = fileList.flatMap(fileName =>
getTimeFromName(fileName).map(extracted => (fileName, extracted._1))
@@ -137,6 +138,25 @@ class DataService(log: Logger[IO]) {
} yield results
}
def deleteTmp(): IO[List[DeletionResult]] = {
for {
fileList <- Files[IO]
.list(Path(TMP_FOLDER))
.map(_.toString)
.map(_.replace(s"$TMP_FOLDER/", ""))
.compile.toList
results <- fileList.traverse { name =>
val path = Path(s"$TMP_FOLDER/${name}")
Files[IO].delete(path).attempt.flatMap {
case Right(_) => log.info(s"delete: $name").as(DeletionResult(name, true, None))
case Left(error) => log.error(s"Failed to delete $name: ${error.getMessage}")
.as(DeletionResult(name, false, Some(error.getMessage)))
}
}
} yield results
}
private def getTimeFromName(filename: String): Option[(ZonedDateTime, ZonedDateTime)] = {
Try {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HHmm'Z'").withZone(ZoneId.of("UTC"))