abstract class CustomExecutionContext extends ExecutionContextExecutor
This class defines a custom execution context that delegates to an akka.actor.ActorSystem.
It is very useful for situations in which the default execution context should not be used, for example if a database or blocking I/O is being used.
To define a custom context, subclass CustomExecutionContext with the dispatcher name:
@Singleton class DatabaseExecutionContext @Inject()(system: ActorSystem) extends CustomExecutionContext(system, "database-dispatcher")
and then bind it in dependency injection:
bind[DatabaseExecutionContext].to(classOf[DatabaseExecutionContext]).asEagerSingleton()
Then have the execution context passed in as an implicit parameter:
class DatabaseService @Inject()(implicit executionContext: DatabaseExecutionContext) { ... }
- Source
- CustomExecutionContext.scala
- See also
- Alphabetic
- By Inheritance
- CustomExecutionContext
- ExecutionContextExecutor
- Executor
- ExecutionContext
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
CustomExecutionContext(system: ActorSystem, name: String)
- system
the actor system
- name
the full path of the dispatcher name in Typesafe Config.
Value Members
-
def
execute(command: Runnable): Unit
- Definition Classes
- CustomExecutionContext → Executor → ExecutionContext
-
def
reportFailure(cause: Throwable): Unit
- Definition Classes
- CustomExecutionContext → ExecutionContext
Deprecated Value Members
-
def
prepare(): ExecutionContext
- Definition Classes
- ExecutionContext
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.0) preparation of ExecutionContexts will be removed