Add fetch recent gribs to scheduler

This commit is contained in:
Guntis Smaukstelis
2025-02-12 23:32:30 +02:00
parent 35acc79095
commit 78060f61c0
2 changed files with 9 additions and 17 deletions
+7 -15
View File
@@ -1,7 +1,7 @@
package app package app
import cats.effect._ import cats.effect._
import cats.implicits.catsSyntaxTuple3Parallel import cats.implicits.catsSyntaxTuple4Parallel
import data.DataService import data.DataService
import db.{DBConnection, PostgresService} import db.{DBConnection, PostgresService}
import fetch.{FetchService, FileFetchScheduler} import fetch.{FetchService, FileFetchScheduler}
@@ -16,27 +16,19 @@ object Main extends IOApp {
fetch <- FetchService.of fetch <- FetchService.of
fileFetchScheduler <- FileFetchScheduler.of(postgresService, fetch) fileFetchScheduler <- FileFetchScheduler.of(postgresService, fetch)
schedulerTask = fileFetchScheduler.run.compile.drain fetchCsvTask = fileFetchScheduler.run.compile.drain
// scheduler <- fetchDMI.Scheduler.of("Grib", List(3, 27, 39, 51))
// simpleTask = IO.delay {
// val timeNow = LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm"))
// List(s"Task executed at $timeNow")
// }
// simpleScheduler = scheduler.scheduleTask(simpleTask).compile.drain
scheduler <- fetchDMI.Scheduler.of("Cleanup", List(1)) scheduler <- fetchDMI.Scheduler.of("Cleanup", List(1))
cleanupTask = DataService.deleteOldForecasts() cleanupTask = scheduler.scheduleTask(DataService.deleteOldForecasts()).compile.drain
cleanupScheduler = scheduler.scheduleTask(cleanupTask).compile.drain
scheduler <- fetchDMI.Scheduler.of("Fetch Grib", List(2))
fetchGrib <- fetchDMI.FetchService.of
fetchGribTask = scheduler.scheduleTask(fetchGrib.fetchRecentForecasts()).compile.drain
server <- Server.of(postgresService, fetch) server <- Server.of(postgresService, fetch)
serverTask = server.run serverTask = server.run
exitCode <- (serverTask, schedulerTask, cleanupScheduler).parMapN((_, _, _) => ExitCode.Success) exitCode <- (serverTask, fetchCsvTask, cleanupTask, fetchGribTask).parMapN((_, _, _, _) => ExitCode.Success)
} yield exitCode } yield exitCode
} }
} }
+2 -2
View File
@@ -99,11 +99,11 @@ class FetchService(log: Logger[IO]) {
* check local forecast grib files not to download them again * check local forecast grib files not to download them again
* fetch those forecasts * fetch those forecasts
*/ */
def fetchRecentForecasts(): IO[Unit] = { def fetchRecentForecasts(): IO[List[String]] = {
for { for {
dateTimeList <- generateFetchList() dateTimeList <- generateFetchList()
resultList <- fetchFromList(dateTimeList) resultList <- fetchFromList(dateTimeList)
} yield () } yield resultList
} }
def generateFetchList(): IO[List[ZonedDateTime]] = { def generateFetchList(): IO[List[ZonedDateTime]] = {