Class ActorSystem<T>
- java.lang.Object
-
- akka.actor.typed.ActorSystem<T>
-
- All Implemented Interfaces:
ClassicActorSystemProvider
,ActorRef<T>
,Extensions
,RecipientRef<T>
,java.io.Serializable
,java.lang.Comparable<ActorRef<?>>
public abstract class ActorSystem<T> extends java.lang.Object implements ActorRef<T>, Extensions, ClassicActorSystemProvider
An ActorSystem is home to a hierarchy of Actors. It is created usingapply(akka.actor.typed.Behavior<T>, java.lang.String)
from aBehavior
object that describes the root Actor of this hierarchy and which will create all other Actors beneath it. A system also implements theActorRef
type, and sending a message to the system directs that message to the root Actor.Not for user extension.
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface akka.actor.typed.ActorRef
ActorRef.ActorRefOps<T>, ActorRef.ActorRefOps$
-
Nested classes/interfaces inherited from interface akka.actor.typed.RecipientRef
RecipientRef.RecipientRefOps<T>, RecipientRef.RecipientRefOps$
-
-
Constructor Summary
Constructors Constructor Description ActorSystem()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Address
address()
Obtains the external address of the default transport.static <T> ActorSystem<T>
apply(Behavior<T> guardianBehavior, java.lang.String name)
Scala API: Create an ActorSystemstatic <T> ActorSystem<T>
apply(Behavior<T> guardianBehavior, java.lang.String name, BootstrapSetup bootstrapSetup)
Scala API: Shortcut for creating an actor system with custom bootstrap settings.static <T> ActorSystem<T>
apply(Behavior<T> guardianBehavior, java.lang.String name, ActorSystemSetup setup, Props guardianProps)
Scala API: Creates a new actor system with the specified name and settings The core actor system settings are defined inBootstrapSetup
static <T> ActorSystem<T>
apply(Behavior<T> guardianBehavior, java.lang.String name, com.typesafe.config.Config config)
Scala API: Create an ActorSystemstatic <T> ActorSystem<T>
apply(Behavior<T> guardianBehavior, java.lang.String name, com.typesafe.config.Config config, Props guardianProps)
Scala API: Create an ActorSystemstatic <T> Props
apply$default$4()
static <T> ActorSystem<T>
create(Behavior<T> guardianBehavior, java.lang.String name)
Java API: Create an ActorSystemstatic <T> ActorSystem<T>
create(Behavior<T> guardianBehavior, java.lang.String name, BootstrapSetup bootstrapSetup)
Java API: Shortcut for creating an actor system with custom bootstrap settings.static <T> ActorSystem<T>
create(Behavior<T> guardianBehavior, java.lang.String name, ActorSystemSetup setups)
Java API: Creates a new actor system with the specified name and settings The core actor system settings are defined inBootstrapSetup
static <T> ActorSystem<T>
create(Behavior<T> guardianBehavior, java.lang.String name, com.typesafe.config.Config config)
Java API: Create an ActorSystemstatic <T> ActorSystem<T>
create(Behavior<T> guardianBehavior, java.lang.String name, com.typesafe.config.Config config, Props guardianProps)
Java API: Create an ActorSystemabstract <U> ActorRef<U>
deadLetters()
The deadLetter address is a destination that will accept (and discard) every message sent to it.abstract Dispatchers
dispatchers()
Facilities for lookup up thread-pools from configuration.abstract DynamicAccess
dynamicAccess()
ClassLoader wrapper which is used for reflective accesses internally.ActorRef<EventStream.Command>
eventStream()
Main event bus of this actor system, used for example for logging.abstract scala.concurrent.ExecutionContextExecutor
executionContext()
The default thread pool of this ActorSystem, configured with settings inakka.actor.default-dispatcher
.abstract java.util.Optional<java.time.LocalDate>
getLicenseKeyExpiry()
Java API: When the license key will expire.abstract java.util.concurrent.CompletionStage<Done>
getWhenTerminated()
Java API: Returns a CompletionStage which will be completed after the ActorSystem has been terminated and termination hooks have been executed.abstract <U> ActorRef<U>
ignoreRef()
An ActorRef that ignores any incoming messages.abstract scala.Option<java.time.LocalDate>
licenseKeyExpiry()
Scala API: When the license key will expire.abstract org.slf4j.Logger
log()
ALogger
that can be used to emit log messages without specifying a more detailed source.abstract void
logConfiguration()
Log the configuration.abstract java.lang.String
name()
The name of this actor system, used to distinguish multiple ones within the same JVM & class loader.abstract java.lang.String
printTree()
Create a string representation of the actor hierarchy within this system for debugging purposes.ActorRef<Receptionist.Command>
receptionist()
Return a reference to this system’sReceptionist
.abstract Scheduler
scheduler()
A generic scheduler that can initiate the execution of tasks after some delay.abstract Settings
settings()
The core settings extracted from the supplied configuration.abstract long
startTime()
Start-up time in milliseconds since the epoch.abstract <U> ActorRef<U>
systemActorOf(Behavior<U> behavior, java.lang.String name, Props props)
Create an actor in the "/system" namespace.<U> Props
systemActorOf$default$3()
abstract void
terminate()
Terminates this actor system by runningCoordinatedShutdown
with reasonakka.actor.CoordinatedShutdown.ActorSystemTerminateReason
.abstract java.util.concurrent.ThreadFactory
threadFactory()
A ThreadFactory that can be used if the transport needs to create any Threadsabstract long
uptime()
Up-time of this actor system in seconds.abstract scala.concurrent.Future<Done>
whenTerminated()
Scala API: Returns a Future which will be completed after the ActorSystem has been terminated.static ActorSystem<scala.runtime.Nothing$>
wrap(ActorSystem system)
Wrap a classicActorSystem
such that it can be used from Akka TypedBehavior
.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface akka.actor.typed.ActorRef
narrow, path, tell, unsafeUpcast, writeReplace
-
Methods inherited from interface akka.actor.ClassicActorSystemProvider
classicSystem
-
Methods inherited from interface akka.actor.typed.Extensions
extension, hasExtension, registerExtension
-
-
-
-
Method Detail
-
apply
public static <T> ActorSystem<T> apply(Behavior<T> guardianBehavior, java.lang.String name)
Scala API: Create an ActorSystem
-
apply
public static <T> ActorSystem<T> apply(Behavior<T> guardianBehavior, java.lang.String name, com.typesafe.config.Config config)
Scala API: Create an ActorSystem
-
apply
public static <T> ActorSystem<T> apply(Behavior<T> guardianBehavior, java.lang.String name, com.typesafe.config.Config config, Props guardianProps)
Scala API: Create an ActorSystem
-
apply
public static <T> ActorSystem<T> apply(Behavior<T> guardianBehavior, java.lang.String name, ActorSystemSetup setup, Props guardianProps)
Scala API: Creates a new actor system with the specified name and settings The core actor system settings are defined inBootstrapSetup
-
apply
public static <T> ActorSystem<T> apply(Behavior<T> guardianBehavior, java.lang.String name, BootstrapSetup bootstrapSetup)
Scala API: Shortcut for creating an actor system with custom bootstrap settings. Same behavior as callingActorSystem(name, ActorSystemSetup(bootstrapSetup))
-
apply$default$4
public static <T> Props apply$default$4()
-
create
public static <T> ActorSystem<T> create(Behavior<T> guardianBehavior, java.lang.String name)
Java API: Create an ActorSystem
-
create
public static <T> ActorSystem<T> create(Behavior<T> guardianBehavior, java.lang.String name, com.typesafe.config.Config config)
Java API: Create an ActorSystem
-
create
public static <T> ActorSystem<T> create(Behavior<T> guardianBehavior, java.lang.String name, com.typesafe.config.Config config, Props guardianProps)
Java API: Create an ActorSystem
-
create
public static <T> ActorSystem<T> create(Behavior<T> guardianBehavior, java.lang.String name, ActorSystemSetup setups)
Java API: Creates a new actor system with the specified name and settings The core actor system settings are defined inBootstrapSetup
-
create
public static <T> ActorSystem<T> create(Behavior<T> guardianBehavior, java.lang.String name, BootstrapSetup bootstrapSetup)
Java API: Shortcut for creating an actor system with custom bootstrap settings. Same behavior as callingActorSystem.create(name, ActorSystemSetup.create(bootstrapSettings))
-
wrap
public static ActorSystem<scala.runtime.Nothing$> wrap(ActorSystem system)
Wrap a classicActorSystem
such that it can be used from Akka TypedBehavior
.
-
name
public abstract java.lang.String name()
The name of this actor system, used to distinguish multiple ones within the same JVM & class loader.
-
settings
public abstract Settings settings()
The core settings extracted from the supplied configuration.
-
logConfiguration
public abstract void logConfiguration()
Log the configuration.
-
log
public abstract org.slf4j.Logger log()
ALogger
that can be used to emit log messages without specifying a more detailed source. Typically it is desirable to use the dedicatedLogger
available from each Actor’sTypedActorContext
as that ties the log entries to the actor.
-
startTime
public abstract long startTime()
Start-up time in milliseconds since the epoch.
-
uptime
public abstract long uptime()
Up-time of this actor system in seconds.
-
threadFactory
public abstract java.util.concurrent.ThreadFactory threadFactory()
A ThreadFactory that can be used if the transport needs to create any Threads
-
dynamicAccess
public abstract DynamicAccess dynamicAccess()
ClassLoader wrapper which is used for reflective accesses internally. This is set to use the context class loader, if one is set, or the class loader which loaded the ActorSystem implementation. The context class loader is also set on all threads created by the ActorSystem, if one was set during creation.
-
scheduler
public abstract Scheduler scheduler()
A generic scheduler that can initiate the execution of tasks after some delay. It is recommended to use the ActorContext’s scheduling capabilities for sending messages to actors instead of registering a Runnable for execution using this facility.
-
dispatchers
public abstract Dispatchers dispatchers()
Facilities for lookup up thread-pools from configuration.
-
executionContext
public abstract scala.concurrent.ExecutionContextExecutor executionContext()
The default thread pool of this ActorSystem, configured with settings inakka.actor.default-dispatcher
.
-
terminate
public abstract void terminate()
Terminates this actor system by runningCoordinatedShutdown
with reasonakka.actor.CoordinatedShutdown.ActorSystemTerminateReason
.If
akka.coordinated-shutdown.run-by-actor-system-terminate
is configured tooff
it will not runCoordinatedShutdown
, but theActorSystem
and its actors will still be terminated.This will stop the guardian actor, which in turn will recursively stop all its child actors, and finally the system guardian (below which the logging actors reside).
This is an asynchronous operation and completion of the termination can be observed with
ActorSystem.whenTerminated
orActorSystem.getWhenTerminated
.
-
whenTerminated
public abstract scala.concurrent.Future<Done> whenTerminated()
Scala API: Returns a Future which will be completed after the ActorSystem has been terminated. TheActorSystem
can be stopped withActorSystem.terminate
or by stopping the guardian actor.Be careful to not schedule any operations, such as
onComplete
, on the dispatchers (ExecutionContext
) of this actor system as they will have been shut down before this future completes.
-
getWhenTerminated
public abstract java.util.concurrent.CompletionStage<Done> getWhenTerminated()
Java API: Returns a CompletionStage which will be completed after the ActorSystem has been terminated and termination hooks have been executed. TheActorSystem
can be stopped withActorSystem.terminate
or by stopping the guardian actor.Be careful to not schedule any operations, such as
thenRunAsync
, on the dispatchers (Executor
) of this actor system as they will have been shut down before this CompletionStage completes.
-
deadLetters
public abstract <U> ActorRef<U> deadLetters()
The deadLetter address is a destination that will accept (and discard) every message sent to it.
-
ignoreRef
public abstract <U> ActorRef<U> ignoreRef()
An ActorRef that ignores any incoming messages.
-
printTree
public abstract java.lang.String printTree()
Create a string representation of the actor hierarchy within this system for debugging purposes.The format of the string is subject to change, i.e. no stable “API”.
-
systemActorOf
public abstract <U> ActorRef<U> systemActorOf(Behavior<U> behavior, java.lang.String name, Props props)
Create an actor in the "/system" namespace. This actor will be shut down during system.terminate only after all user actors have terminated.This is only intended to be used by libraries (and Akka itself). Applications should use ordinary
spawn
.
-
systemActorOf$default$3
public <U> Props systemActorOf$default$3()
-
receptionist
public ActorRef<Receptionist.Command> receptionist()
Return a reference to this system’sReceptionist
.
-
eventStream
public ActorRef<EventStream.Command> eventStream()
Main event bus of this actor system, used for example for logging. AcceptsEventStream.Command
.
-
address
public abstract Address address()
Obtains the external address of the default transport.Consider differences in clustered and non-clustered ActorSystems. For a non-clustered ActorSystem, this will return an address without host and port. For a clustered ActorSystem, this will return the address that other nodes can use to communicate with this node.
-
licenseKeyExpiry
public abstract scala.Option<java.time.LocalDate> licenseKeyExpiry()
Scala API: When the license key will expire.None
for perpetual keys. If a license key is not defined the expiry date will be today's date.
-
getLicenseKeyExpiry
public abstract java.util.Optional<java.time.LocalDate> getLicenseKeyExpiry()
Java API: When the license key will expire.Optional.empty
for perpetual keys. If a license key is not defined the expiry date will be today's date.
-
-