Package akka.cluster.sharding
Class Shard
- java.lang.Object
-
- akka.cluster.sharding.Shard
-
- All Implemented Interfaces:
Actor
,ActorLogging
,Stash
,StashSupport
,Timers
,UnrestrictedStash
,RequiresMessageQueue<DequeBasedMessageQueueSemantics>
public class Shard extends java.lang.Object implements Actor, ActorLogging, Stash, Timers
INTERNAL APIThis actor creates children entity actors on demand that it is told to be responsible for.
- See Also:
ClusterSharding extension
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Shard.Active
static class
Shard.Active$
static class
Shard.CurrentShardState
static class
Shard.CurrentShardState$
static class
Shard.Entities
static class
Shard.EntitiesMovedToOtherShard
If the shard id extractor is changed, remembered entities will start in a different shard and this message is sent to the shard to not leakentityId -> RememberedButNotStarted
entriesstatic class
Shard.EntitiesMovedToOtherShard$
static interface
Shard.EntityState
State machine for an entity:static class
Shard.GetCurrentShardState$
static class
Shard.GetShardStats$
static class
Shard.LeaseAcquireResult
static class
Shard.LeaseAcquireResult$
static class
Shard.LeaseLost
static class
Shard.LeaseLost$
static class
Shard.LeaseRetry$
static class
Shard.NoState$
Empty state rather than using optionals, is never really kept track of but used to verify state transitions and as return value instead of nullstatic class
Shard.PassivateIdleTick$
static class
Shard.Passivating
static class
Shard.Passivating$
static class
Shard.RememberedButNotCreated$
In this state we know the entity has been stored in the remember sore but it hasn't been created yet.static interface
Shard.RememberEntityCommand
A Shard commandstatic class
Shard.RememberEntityTimeout
static class
Shard.RememberEntityTimeout$
static class
Shard.RememberingStart
static class
Shard.RememberingStart$
static class
Shard.RememberingStop$
When remember entities is enabled an entity is in this state while its stop is being recorded in the remember entities store, or while the stop is queued up to be stored in the next batch.static class
Shard.RestartTerminatedEntity
When remembering entities and the entity stops without issuing aPassivate
, we restart it after a back off using this message.static class
Shard.RestartTerminatedEntity$
static interface
Shard.ShardQuery
A query for information about the shardstatic class
Shard.ShardStats
static class
Shard.ShardStats$
static class
Shard.WaitingForRestart$
static interface
Shard.WithRef
-
Nested classes/interfaces inherited from interface akka.actor.Actor
Actor.emptyBehavior$, Actor.ignoringBehavior$
-
-
Constructor Summary
Constructors Constructor Description Shard(java.lang.String typeName, java.lang.String shardId, scala.Function1<java.lang.String,Props> entityProps, ClusterShardingSettings settings, scala.PartialFunction<java.lang.Object,scala.Tuple2<java.lang.String,java.lang.Object>> extractEntityId, scala.Function1<java.lang.Object,java.lang.String> extractShardId, java.lang.Object handOffStopMessage, scala.Option<RememberEntitiesProvider> rememberEntitiesProvider)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
acquireLeaseIfNeeded()
protected void
akka$actor$Actor$_setter_$context_$eq(ActorContext x$1)
Scala API: Stores the context for this actor, including self, and sender.protected void
akka$actor$Actor$_setter_$self_$eq(ActorRef x$1)
The 'self' field holds the ActorRef for this actor.protected void
akka$actor$StashSupport$_setter_$mailbox_$eq(DequeBasedMessageQueueSemantics x$1)
void
appendToMessageBuffer(java.lang.String id, java.lang.Object msg, ActorRef snd)
scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit>
awaitingRememberedEntities()
ActorContext
context()
Scala API: Stores the context for this actor, including self, and sender.void
dropBufferFor(java.lang.String entityId, java.lang.String reason)
int
entityCreated(java.lang.String id)
Called when an entity has been created.void
entityTerminated(ActorRef ref)
ActorRef
getOrCreateEntity(java.lang.String id)
scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit>
idle()
void
loadingEntityIdsFailed()
DequeBasedMessageQueueSemantics
mailbox()
void
onEntitiesRemembered(scala.collection.immutable.Set<java.lang.String> ids)
void
onUpdateDone(scala.collection.immutable.Set<java.lang.String> starts, scala.collection.immutable.Set<java.lang.String> stops)
void
passivateCompleted(java.lang.String entityId)
void
postStop()
User overridable callback.void
preStart()
User overridable callback.static Props
props(java.lang.String typeName, java.lang.String shardId, scala.Function1<java.lang.String,Props> entityProps, ClusterShardingSettings settings, scala.PartialFunction<java.lang.Object,scala.Tuple2<java.lang.String,java.lang.Object>> extractEntityId, scala.Function1<java.lang.Object,java.lang.String> extractShardId, java.lang.Object handOffStopMessage, scala.Option<RememberEntitiesProvider> rememberEntitiesProvider)
scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit>
receive()
Scala API: This defines the initial actor behavior, it must return a partial function with the actor logic.void
receiveLeaseLost(Shard.LeaseLost msg)
void
receiveShardQuery(Shard.ShardQuery msg)
void
rememberUpdate(scala.collection.immutable.Set<java.lang.String> add, scala.collection.immutable.Set<java.lang.String> remove)
scala.collection.immutable.Set<java.lang.String>
rememberUpdate$default$1()
scala.collection.immutable.Set<java.lang.String>
rememberUpdate$default$2()
ActorRef
self()
The 'self' field holds the ActorRef for this actor.void
sendMsgBuffer(java.lang.String entityId)
void
sendToRememberStore(ActorRef store, scala.collection.immutable.Set<java.lang.String> storingStarts, scala.collection.immutable.Set<java.lang.String> storingStops)
void
touchLastMessageTimestamp(java.lang.String id)
void
tryLoadRememberedEntities()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface akka.actor.Actor
aroundPostRestart, aroundPreStart, postRestart, sender, supervisorStrategy, unhandled
-
Methods inherited from interface akka.actor.ActorLogging
_log_$eq, log
-
Methods inherited from interface akka.actor.StashSupport
actorCell, clearStash, enqueueFirst, prepend, stash, theStash_$eq, unstash, unstashAll, unstashAll
-
Methods inherited from interface akka.actor.Timers
actorCell, aroundPostStop, aroundPreRestart, aroundReceive, super$aroundPostStop, super$aroundPreRestart, super$aroundReceive, timers
-
Methods inherited from interface akka.actor.UnrestrictedStash
preRestart, super$postStop, super$preRestart
-
-
-
-
Constructor Detail
-
Shard
public Shard(java.lang.String typeName, java.lang.String shardId, scala.Function1<java.lang.String,Props> entityProps, ClusterShardingSettings settings, scala.PartialFunction<java.lang.Object,scala.Tuple2<java.lang.String,java.lang.Object>> extractEntityId, scala.Function1<java.lang.Object,java.lang.String> extractShardId, java.lang.Object handOffStopMessage, scala.Option<RememberEntitiesProvider> rememberEntitiesProvider)
-
-
Method Detail
-
props
public static Props props(java.lang.String typeName, java.lang.String shardId, scala.Function1<java.lang.String,Props> entityProps, ClusterShardingSettings settings, scala.PartialFunction<java.lang.Object,scala.Tuple2<java.lang.String,java.lang.Object>> extractEntityId, scala.Function1<java.lang.Object,java.lang.String> extractShardId, java.lang.Object handOffStopMessage, scala.Option<RememberEntitiesProvider> rememberEntitiesProvider)
-
mailbox
public DequeBasedMessageQueueSemantics mailbox()
- Specified by:
mailbox
in interfaceStashSupport
-
akka$actor$StashSupport$_setter_$mailbox_$eq
protected void akka$actor$StashSupport$_setter_$mailbox_$eq(DequeBasedMessageQueueSemantics x$1)
- Specified by:
akka$actor$StashSupport$_setter_$mailbox_$eq
in interfaceStashSupport
-
context
public ActorContext context()
Description copied from interface:Actor
Scala API: Stores the context for this actor, including self, and sender. It is implicit to support operations such asforward
.WARNING: Only valid within the Actor itself, so do not close over it and publish it to other threads!
ActorContext
is the Scala API.getContext
returns aAbstractActor.ActorContext
, which is the Java API of the actor context.- Specified by:
context
in interfaceActor
- Specified by:
context
in interfaceStashSupport
-
self
public final ActorRef self()
Description copied from interface:Actor
The 'self' field holds the ActorRef for this actor. Can be used to send messages to itself:self ! message
- Specified by:
self
in interfaceActor
- Specified by:
self
in interfaceStashSupport
-
akka$actor$Actor$_setter_$context_$eq
protected void akka$actor$Actor$_setter_$context_$eq(ActorContext x$1)
Description copied from interface:Actor
Scala API: Stores the context for this actor, including self, and sender. It is implicit to support operations such asforward
.WARNING: Only valid within the Actor itself, so do not close over it and publish it to other threads!
ActorContext
is the Scala API.getContext
returns aAbstractActor.ActorContext
, which is the Java API of the actor context.- Specified by:
akka$actor$Actor$_setter_$context_$eq
in interfaceActor
-
akka$actor$Actor$_setter_$self_$eq
protected final void akka$actor$Actor$_setter_$self_$eq(ActorRef x$1)
Description copied from interface:Actor
The 'self' field holds the ActorRef for this actor. Can be used to send messages to itself:self ! message
- Specified by:
akka$actor$Actor$_setter_$self_$eq
in interfaceActor
-
receive
public scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> receive()
Description copied from interface:Actor
Scala API: This defines the initial actor behavior, it must return a partial function with the actor logic.
-
preStart
public void preStart()
Description copied from interface:Actor
User overridable callback. Is called when an Actor is started. Actors are automatically started asynchronously when created. Empty default implementation.
-
acquireLeaseIfNeeded
public void acquireLeaseIfNeeded()
-
tryLoadRememberedEntities
public void tryLoadRememberedEntities()
-
awaitingRememberedEntities
public scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> awaitingRememberedEntities()
-
loadingEntityIdsFailed
public void loadingEntityIdsFailed()
-
onEntitiesRemembered
public void onEntitiesRemembered(scala.collection.immutable.Set<java.lang.String> ids)
-
idle
public scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> idle()
-
rememberUpdate
public void rememberUpdate(scala.collection.immutable.Set<java.lang.String> add, scala.collection.immutable.Set<java.lang.String> remove)
-
rememberUpdate$default$1
public scala.collection.immutable.Set<java.lang.String> rememberUpdate$default$1()
-
rememberUpdate$default$2
public scala.collection.immutable.Set<java.lang.String> rememberUpdate$default$2()
-
sendToRememberStore
public void sendToRememberStore(ActorRef store, scala.collection.immutable.Set<java.lang.String> storingStarts, scala.collection.immutable.Set<java.lang.String> storingStops)
-
onUpdateDone
public void onUpdateDone(scala.collection.immutable.Set<java.lang.String> starts, scala.collection.immutable.Set<java.lang.String> stops)
-
receiveLeaseLost
public void receiveLeaseLost(Shard.LeaseLost msg)
-
receiveShardQuery
public void receiveShardQuery(Shard.ShardQuery msg)
-
entityTerminated
public void entityTerminated(ActorRef ref)
-
touchLastMessageTimestamp
public void touchLastMessageTimestamp(java.lang.String id)
-
passivateCompleted
public void passivateCompleted(java.lang.String entityId)
-
getOrCreateEntity
public ActorRef getOrCreateEntity(java.lang.String id)
-
entityCreated
public int entityCreated(java.lang.String id)
Called when an entity has been created. Returning the number of active entities.
-
appendToMessageBuffer
public void appendToMessageBuffer(java.lang.String id, java.lang.Object msg, ActorRef snd)
-
sendMsgBuffer
public void sendMsgBuffer(java.lang.String entityId)
-
dropBufferFor
public void dropBufferFor(java.lang.String entityId, java.lang.String reason)
-
postStop
public void postStop()
Description copied from interface:Actor
User overridable callback. Is called asynchronously after 'actor.stop()' is invoked. Empty default implementation.- Specified by:
postStop
in interfaceActor
- Specified by:
postStop
in interfaceUnrestrictedStash
-
-