public void Aggregate_managers_can_be_started()
        {
            RunOn(() =>
            {
                var region = ClusterFactory <TestAggregateManager, TestAggregate, TestAggregateId>
                             .StartClusteredAggregate(Sys, _numberOfShards);

                region.Tell(new Identify(1));

                ExpectMsg <ActorIdentity>(x => x.MessageId.Equals(1));

                Sys.Log.Info("region address: {0}", region.Path);
            }, _config.Worker);

            EnterBarrier("aggregate-managers-started");
        }
        public static IAkkatectureBuilder AddAggregateManagerCluster <TAggregateManager, TAggregate, TIdentity>(
            this IAkkatectureBuilder builder,
            int numberOfShards = 12)
            where TAggregateManager : ReceiveActor, IAggregateManager <TAggregate, TIdentity>
            where TAggregate : IAggregateRoot <TIdentity>
            where TIdentity : IIdentity
        {
            var aggregateManager = ClusterFactory <TAggregateManager, TAggregate, TIdentity>
                                   .StartClusteredAggregate(
                builder.ActorSystem,
                numberOfShards);

            var actorRef = new ActorRefOfT <TAggregateManager>(aggregateManager);

            builder.Services.AddSingleton <IActorRef <TAggregateManager> >(actorRef);
            return(builder);
        }
示例#3
0
 public static void StartUserAccountCluster(ActorSystem actorSystem)
 {
     ClusterFactory <UserAccountAggregateManager, UserAccountAggregate, UserAccountId>
     .StartClusteredAggregate(actorSystem);
 }