public void Initialize(string name, IServiceCollection serviceCollection, int endpointPort)
        {
            // register anything that is Actor Framework specific
            // Actors MUST be transient
            // Any actor depencency must be transient or singleton
            serviceCollection.AddTransient <ProjectionActor>();
            serviceCollection.AddTransient <ProjectionActorV2>();
            serviceCollection.AddTransient <RoomActor>();

            MonitoringSystems.AddSystem(new InMemoryMonitoringSystem("InMemory"));
            ActorMonitoring.TrackReceivedMessagesEnabled = true;
            MetricsHousekeeper.Configure(new []
            {
                new InMemoryEventsExpirationRule(TimeSpan.FromMinutes(5))
            });
            MetricsHousekeeper.Schedule(TimeSpan.FromMinutes(1));
            EndpointInstaller.Start(endpointPort);

            string hocon  = System.IO.File.ReadAllText(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"AkkaApp\hocon.cfg"));
            var    config = ConfigurationFactory.ParseString(hocon);

            // .WithFallback();
            ColoredConsole.WriteLine("Creating the ActorSystem");
            _actorSystem = ActorSystem.Create(name, config);
            new AkkaServiceProviderDependencyResolver(serviceCollection.BuildServiceProvider(), _actorSystem);

            // add a deadletter watcher actor
            var deadlettermonitorRef = _actorSystem.ActorOf <DeadLetterMonitor>("deadlettermonitor");

            _actorSystem.EventStream.Subscribe(deadlettermonitorRef, typeof(DeadLetter));
        }
Esempio n. 2
0
        public void WaitForShutdown()
        {
            ColoredConsole.WriteLine("Awaiting for ActorSystem Termination");
            _actorSystem.WhenTerminated.Wait();
            ColoredConsole.WriteLine("ActorSystem Terminated");

            EndpointInstaller.Stop().Wait();
        }
Esempio n. 3
0
        public void Initialize(string name)
        {
            MonitoringSystems.AddSystem(new InMemoryMonitoringSystem("InMemory"));
            ActorMonitoring.TrackReceivedMessagesEnabled = true;
            EndpointInstaller.Start(5003);

            string hocon  = System.IO.File.ReadAllText(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "hocon.cfg"));
            var    config = ConfigurationFactory.ParseString(hocon);

            // .WithFallback();
            ColoredConsole.WriteLine("Creating the ActorSystem");
            _actorSystem = ActorSystem.Create(name, config);

            // add a deadletter watcher actor
            var deadlettermonitorRef = _actorSystem.ActorOf <DeadLetterMonitor>("deadlettermonitor");

            _actorSystem.EventStream.Subscribe(deadlettermonitorRef, typeof(DeadLetter));
        }