public SingleActorShould() { _actor = new TestActor(1); _actorContext = new Mock <IActorContext>(); _actorContext .Setup(context => context.GetEnumerator()) .Returns(EmptyEnumerator <Actor> .Instance); _single = new SingleActor <TestActor>(_actorContext.Object); }
public void RegisterOnMemberUp() { Console.WriteLine(cluster.SelfAddress + "上线....."); var clusterSingletonManagerProps = ClusterSingletonManager.Props( singletonProps: SingleActor.CreateProps(this.actorSystem).WithRouter(new Akka.Routing.RoundRobinPool(5)), terminationMessage: PoisonPill.Instance, settings: ClusterSingletonManagerSettings.Create(ActorSystem)); var singlet = ActorSystem.ActorOf(clusterSingletonManagerProps, name: "singletonManager"); Console.WriteLine("singletonManager:{0}", singlet.Path.ToString()); }
public SingleActor <TActor> GetSingle <TActor>() where TActor : Actor { var typeId = Typeof <TActor> .Id; object singleActor; using (Lock.Enter(_singleActors)) { // ReSharper disable once InvertIf if (!_singleActors.TryGetValue(typeId, out singleActor)) { singleActor = new SingleActor <TActor>(this); _singleActors.Add(typeId, singleActor); } } return((SingleActor <TActor>)singleActor); }