class RunAllRoles[F[_]] extends RoleService[F] with BundledTask
This service runs all the non-bundled distage services with its arguments passed to each task.
This service itself might not be too useful in complex cases because of the argument sharing, though it may be used as a template for creating service aggregates.
- Alphabetic
- By Inheritance
- RunAllRoles
- BundledTask
- BundledService
- RoleService
- AbstractRole
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def start(roleParameters: RawEntrypointParams, freeArgs: Vector[String]): Lifecycle[F, Unit]
Returns a izumi.distage.model.definition.Lifecycle with the start/shutdown of a service described by its
acquire
/release
actions.Returns a izumi.distage.model.definition.Lifecycle with the start/shutdown of a service described by its
acquire
/release
actions. The acquired service will be kept alive until the application is interrupted or is otherwise finished, then the specifiedrelease
action of the Lifecycle will run for cleanup.- Definition Classes
- RunAllRoles → RoleService
Often start is implemented using the izumi.distage.model.definition.Lifecycle.fork_ method to spawn a daemon fiber running the service in background.
import izumi.distage.roles.model.RoleService import izumi.functional.bio.{F, IO2} import logstage.LogIO2 import logstage.LogIO2.log final class HelloService[F[+_, +_]: IO2: LogIO2] extends RoleService[F] { def start(roleParameters: RawEntrypointParams, freeArgs: Vector[String]): Lifecycle[F[Nothing, _], Unit] = { Lifecycle.fork_(helloServer).void } val helloServer: F[Throwable, Unit] = { (for { name <- F.syncThrowable { Console.in.readLine() } _ <- log.info(s"Hello $name!") } yield ()).forever } }
- Note
Resource initialization must be finite. Application startup won't progress until the
acquire
phase of the returned Lifecycle is finished. You may start a separate thread / fiber, etc during resource initialization. All the shutdown logic has to be implemented in the resource finalizer.
Example: - final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()