public static ActorSystemEventRepository New(IActorSystemFactory factory, EventsAdaptersCatalog eventsAdaptersCatalog) { var actorSystem = factory.Create(); actorSystem.InitDomainEventsSerialization(eventsAdaptersCatalog); return(new ActorSystemEventRepository(actorSystem)); }
public async Task Start() { Log.Information("Starting GridDomain node {Id}", Id); _stopping = false; EventsAdaptersCatalog = new EventsAdaptersCatalog(); _containerBuilder = new ContainerBuilder(); System = _actorSystemFactory.Create(); System.RegisterOnTermination(OnSystemTermination); System.InitLocalTransportExtension(); Transport = System.GetTransport(); _containerBuilder.Register(new GridNodeContainerConfiguration(Transport, Log)); _waiterFactory = new MessageWaiterFactory(System, Transport, DefaultTimeout); Initializing.Invoke(this, this); System.InitDomainEventsSerialization(EventsAdaptersCatalog); ActorTransportProxy = System.ActorOf(Props.Create(() => new LocalTransportProxyActor()), nameof(ActorTransportProxy)); //var appInsightsConfig = AppInsightsConfigSection.Default ?? new DefaultAppInsightsConfiguration(); //var perfCountersConfig = AppInsightsConfigSection.Default ?? new DefaultAppInsightsConfiguration(); // //if(appInsightsConfig.IsEnabled) //{ // var monitor = new ActorAppInsightsMonitor(appInsightsConfig.Key); // ActorMonitoringExtension.RegisterMonitor(System, monitor); //} //if(perfCountersConfig.IsEnabled) // ActorMonitoringExtension.RegisterMonitor(System, new ActorPerformanceCountersMonitor()); _commandExecutor = await CreateCommandExecutor(); _containerBuilder.RegisterInstance(_commandExecutor); var domainBuilder = CreateDomainBuilder(); domainBuilder.Configure(_containerBuilder); Container = _containerBuilder.Build(); System.AddDependencyResolver(new AutoFacDependencyResolver(Container, System)); domainBuilder.Configure(Pipe); var nodeController = System.ActorOf(Props.Create(() => new GridNodeController(Pipe.CommandExecutor, ActorTransportProxy)), nameof(GridNodeController)); await nodeController.Ask <GridNodeController.Alive>(GridNodeController.HeartBeat.Instance); Log.Information("GridDomain node {Id} started at home {Home}", Id, System.Settings.Home); }
public StatsActorSystemService(IActorSystemFactory actorSystemFactory) { StatsActorSystem = actorSystemFactory.Create("StatsCoordinatorActor"); statActorRef = StatsActorSystem.ActorOf(StatsActorSystem.DI().Props<StatsCoordinatorActor>() .WithRouter(new RoundRobinPool(2)), "StatsCoordinatorActor"); }