Add fetch recent gribs to scheduler
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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]] = {
|
||||||
|
|||||||
Reference in New Issue
Block a user