Scheduler and also Main file to call server and scheduler

This commit is contained in:
Guntis Smaukstelis
2023-05-14 15:48:52 +03:00
parent ea19ae27f8
commit 6ca1f4a13a
6 changed files with 100 additions and 9 deletions
+22
View File
@@ -0,0 +1,22 @@
package server
import cats.effect._
import db.DBService
import fetch.{FetchService, FileNameService}
import fs2.Stream
object Main extends IOApp {
def run(args: List[String]): IO[ExitCode] = {
val fetchTask = FileNameService.generateCurrentHour.flatMap(FetchService.fetchSingleFile)
Stream(
Server.run,
Scheduler.scheduleTask(fetchTask)
.evalMap { case (name, content) =>
IO(println(s"fetched: $name")) *>
DBService.save(name, content).attempt.flatMap {
case Right(savedName) => IO(println(s"File saved: $savedName"))
case Left(err) => IO(println(s"Error: $err"))
}
}
).parJoinUnbounded.compile.drain.as(ExitCode.Success)
}
}