From ca9106fcfcb6d7817f0ea66686c47a53a8f00424 Mon Sep 17 00:00:00 2001 From: James Roper Date: Thu, 30 May 2019 14:54:57 +1000 Subject: [PATCH] Delay the start of cluster sharding --- src/main/java/cluster/sharding/Runner.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/cluster/sharding/Runner.java b/src/main/java/cluster/sharding/Runner.java index 3dc1cab..723b8bb 100644 --- a/src/main/java/cluster/sharding/Runner.java +++ b/src/main/java/cluster/sharding/Runner.java @@ -27,11 +27,14 @@ private static void startupClusterNode() { actorSystem.actorOf(ClusterListenerActor.props(), "clusterListener"); ActorRef httpServer = actorSystem.actorOf(HttpServerActor.props(), "httpServer"); - ActorRef shardingRegion = setupClusterSharding(actorSystem, httpServer); - createClusterSingletonManagerActor(actorSystem, httpServer); - actorSystem.actorOf(EntityCommandActor.props(shardingRegion), "entityCommand"); - actorSystem.actorOf(EntityQueryActor.props(shardingRegion), "entityQuery"); + Cluster.get(actorSystem).registerOnMemberUp(() -> { + ActorRef shardingRegion = setupClusterSharding(actorSystem, httpServer); + createClusterSingletonManagerActor(actorSystem, httpServer); + + actorSystem.actorOf(EntityCommandActor.props(shardingRegion), "entityCommand"); + actorSystem.actorOf(EntityQueryActor.props(shardingRegion), "entityQuery"); + }); addCoordinatedShutdownTask(actorSystem, CoordinatedShutdown.PhaseClusterShutdown());