CustomExecutionContext

play.api.libs.concurrent.CustomExecutionContext
abstract class CustomExecutionContext(system: ActorSystem, name: String) extends ExecutionContextExecutor

This class defines a custom execution context that delegates to an pekko.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) {
 ...
}

Value parameters

name

the full path of the dispatcher name in Typesafe Config.

system

the actor system

Attributes

See also
Graph
Supertypes
trait Executor
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

override def execute(command: Runnable): Unit

Attributes

Definition Classes
Executor -> ExecutionContext
override def reportFailure(cause: Throwable): Unit

Attributes

Definition Classes

Deprecated and Inherited methods

Attributes

Deprecated
[Since version 2.12.0] preparation of ExecutionContexts will be removed
Inherited from:
ExecutionContext