Fix starting a background task to install an addon

This commit is contained in:
eikek
2022-06-17 22:35:08 +02:00
parent 15b698d8b6
commit 7b535e59a6

View File

@ -24,20 +24,15 @@ object Background {
)(run: F[A])(implicit enc: OutputEventEncoder[A]): F[Unit] = {
val log = logger.getOrElse(docspell.logging.getLogger[F])
Async[F]
.background(run)
.use(
_.flatMap(
_.fold(
log.warn("The background operation has been cancelled!"),
ex => log.error(ex)("Error running background operation!"),
event =>
event
.map(enc.encode)
.flatTap(ev => log.info(s"Sending response from async operation: $ev"))
.flatMap(wsTopic.publish1)
.void
)
)
)
.start {
run.map(enc.encode).attempt.flatMap {
case Right(ev) =>
log.info(s"Sending response from async operation: $ev") *>
wsTopic.publish1(ev).void
case Left(ex) =>
log.warn(ex)(s"Background operation failed!")
}
}
.as(())
}
}