Write fatal errors to logs, view logs, clear tmp folder
This commit is contained in:
@@ -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"))
|
||||
|
||||
Reference in New Issue
Block a user