Files
WeatherTool/src/main/scala/server/Main.scala
T

21 lines
768 B
Scala
Raw Normal View History

package server
import cats.effect._
2023-05-17 01:20:01 +03:00
import cats.implicits.catsSyntaxTuple2Parallel
2023-05-25 01:46:50 +03:00
import db.{DBService, DataService}
import fetch.{FetchService, FileFetchScheduler, StatefulFetchService}
object Main extends IOApp {
def run(args: List[String]): IO[ExitCode] = {
for {
dbService <- DBService.of
2023-05-25 01:46:50 +03:00
dataService <- DataService.of(dbService)
fetch <- FetchService.of
statefulFetch <- StatefulFetchService.of(fetch)
2023-05-25 01:46:50 +03:00
fileFetchScheduler <- FileFetchScheduler.of(dataService, statefulFetch)
schedulerTask = fileFetchScheduler.run.compile.drain
2023-05-25 01:46:50 +03:00
server <- Server.of(dataService, statefulFetch)
serverTask = server.run
exitCode <- (serverTask, schedulerTask).parMapN((_, _) => ExitCode.Success)
} yield exitCode
}
}