Make publish async, replace joexclient in periodic job scheduler

This commit is contained in:
eikek
2021-11-14 22:33:24 +01:00
parent e96a22622f
commit 0651db9901
8 changed files with 29 additions and 26 deletions

View File

@ -6,7 +6,9 @@
package docspell.backend.ops
import cats.Applicative
import cats.effect._
import cats.implicits._
import docspell.backend.msg.{CancelJob, Topics}
import docspell.common.Ident
@ -20,13 +22,13 @@ trait OJoex[F[_]] {
}
object OJoex {
def apply[F[_]](pubSub: PubSubT[F]): Resource[F, OJoex[F]] =
def apply[F[_]: Applicative](pubSub: PubSubT[F]): Resource[F, OJoex[F]] =
Resource.pure[F, OJoex[F]](new OJoex[F] {
def notifyAllNodes: F[Unit] =
pubSub.publish1IgnoreErrors(Topics.jobsNotify, ())
pubSub.publish1IgnoreErrors(Topics.jobsNotify, ()).as(())
def cancelJob(job: Ident, worker: Ident): F[Unit] =
pubSub.publish1IgnoreErrors(CancelJob.topic, CancelJob(job, worker))
pubSub.publish1IgnoreErrors(CancelJob.topic, CancelJob(job, worker)).as(())
})
}