Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            using (system = ActorSystem.Create("akka-performance-demo"))
            {
                var registeredMonitor = ActorMonitoringExtension.RegisterMonitor(system, new Monitor());

                IWindsorContainer container = new WindsorContainer();
                container.Register( Component.For<IInterceptor>().
                                    ImplementedBy<MonitorInterceptor>().
                                    Named("monitorInterceptor"),
                                    Component.For<HelloActor>().
                                    LifestyleTransient().
                                    Interceptors(InterceptorReference.ForKey("monitorInterceptor")).
                                    Anywhere);

                WindsorDependencyResolver propsResolver =
                        new WindsorDependencyResolver(container, system);

                var hello = system.ActorOf(propsResolver.Create<HelloActor>(), "Worker1");

                hello.Tell("What's Up");
                hello.Tell("Goodbye");

                var count = 20;
                while (count >= 0)
                {
                    ActorMonitoringExtension.Monitors(system).IncrementDebugsLogged();
                    Console.WriteLine("Logging debug...");
                    Thread.Sleep(100);
                    count--;
                }

                while (ManualResetEvent.WaitOne())
                {
                    Console.WriteLine("Shutting down...");
                    system.Shutdown();
                    Console.WriteLine("Shutdown complete");
                    Console.WriteLine("Press any key to exit");
                    Console.ReadKey();
                    return;
                }

            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            using (system = ActorSystem.Create("akka-performance-demo"))
            {
                var registeredMonitor = ActorMonitoringExtension.RegisterMonitor(system, new Monitor());

                IWindsorContainer container = new WindsorContainer();
                container.Register(Component.For <IInterceptor>().
                                   ImplementedBy <MonitorInterceptor>().
                                   Named("monitorInterceptor"),
                                   Component.For <HelloActor>().
                                   LifestyleTransient().
                                   Interceptors(InterceptorReference.ForKey("monitorInterceptor")).
                                   Anywhere);

                WindsorDependencyResolver propsResolver =
                    new WindsorDependencyResolver(container, system);

                var hello = system.ActorOf(propsResolver.Create <HelloActor>(), "Worker1");

                hello.Tell("What's Up");
                hello.Tell("Goodbye");

                var count = 20;
                while (count >= 0)
                {
                    ActorMonitoringExtension.Monitors(system).IncrementDebugsLogged();
                    Console.WriteLine("Logging debug...");
                    Thread.Sleep(100);
                    count--;
                }

                while (ManualResetEvent.WaitOne())
                {
                    Console.WriteLine("Shutting down...");
                    system.Shutdown();
                    Console.WriteLine("Shutdown complete");
                    Console.WriteLine("Press any key to exit");
                    Console.ReadKey();
                    return;
                }
            }
        }
Ejemplo n.º 3
0
        private static void WithHashPool()
        {
            using (var system = ActorSystem.Create("MySystem"))
            {
                IWindsorContainer container = new WindsorContainer();
                container.Register(Component.For <TypedWorker>().Named("TypedWorker").LifestyleTransient());



                var propsResolver =
                    new WindsorDependencyResolver(container, system);

                var router = system.ActorOf(propsResolver.Create <TypedWorker>().WithRouter(FromConfig.Instance), "router1");

                Task.Delay(500).Wait();
                Console.WriteLine("Sending Messages");
                for (var i = 0; i < 5; i++)
                {
                    for (var j = 0; j < 7; j++)
                    {
                        var msg = new TypedActorMessage {
                            Id = j, Name = Guid.NewGuid().ToString()
                        };
                        var ms = new AnotherMessage {
                            Id = j, Name = msg.Name
                        };

                        var envelope = new ConsistentHashableEnvelope(ms, msg.Id);

                        router.Tell(msg);
                        router.Tell(envelope);
                    }
                }
                Console.WriteLine("Hit Enter to exit");
                Console.ReadLine();
            }
        }