public LifeCycleTest2Actor(ActorRef testActor, string id, AtomicInteger generationProvider) { this.testActor = testActor; this.id = id; this.generationProvider = generationProvider; this.CurrentGeneration = generationProvider.GetAndIncrement(); }
public void Scatter_gather_router_must_deliver_a_broadcast_message_using_tell() { var doneLatch = new TestLatch(sys, 2); var counter1 = new AtomicInteger(0); var counter2 = new AtomicInteger(0); var actor1 = sys.ActorOf(Props.Create(() => new BroadcastTarget(doneLatch, counter1))); var actor2 = sys.ActorOf(Props.Create(() => new BroadcastTarget(doneLatch, counter2))); var routedActor = sys.ActorOf(Props.Create<TestActor>().WithRouter(new ScatterGatherFirstCompletedGroup(TimeSpan.FromSeconds(1), actor1.Path.ToString(), actor2.Path.ToString()))); routedActor.Tell(new Broadcast(1)); routedActor.Tell(new Broadcast("end")); doneLatch.Ready(TimeSpan.FromSeconds(1)); counter1.Value.ShouldBe(1); counter2.Value.ShouldBe(1); }
public BroadcastTarget(TestLatch latch, AtomicInteger counter) { _latch = latch; _counter = counter; }
public void ActorLifecycleTest3() { var generationProvider = new AtomicInteger(); string id = Guid.NewGuid().ToString(); var supervisor = sys.ActorOf(Props.Create(() => new Supervisor(new OneForOneStrategy(3, TimeSpan.FromSeconds(1000), x => Directive.Restart)))); var restarterProps = Props.Create(() => new LifeCycleTest2Actor(testActor, id, generationProvider)); var restarter = supervisor.Ask<InternalActorRef>(restarterProps).Result; expectMsg(Tuple.Create("preStart", id, 0)); restarter.Tell("status"); expectMsg(Tuple.Create("OK", id, 0)); restarter.Stop(); expectMsg(Tuple.Create("postStop", id, 0)); expectNoMsg(TimeSpan.FromSeconds(1)); }