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