Пример #1
0
        static void Main(string[] args)
        {
            Address address      = new Address(args[0]);
            string  localaddress = address.ToString();

            ActorSystem system = new ActorSystem();
            TcpServer   host   = new TcpServer(address.HostName, address.Port, system);

            host.Start();

            Address serveraddress = new Address(args[1]);
            string  remoteaddress = serveraddress.ToString();

            Harvester   harvester = new Harvester();
            RouterActor router    = new RouterActor();

            ActorRef resolverref         = system.ActorSelect(remoteaddress + "/resolver");
            ActorRef remotedownloaderref = system.ActorSelect(remoteaddress + "/downloader");
            ActorRef harvesterref        = system.ActorOf(harvester, "harvester");

            harvester.Resolver = resolverref;

            for (int k = 1; k <= 10; k++)
            {
                Downloader downloader = new Downloader();
                downloader.Harvester = harvesterref;
                ActorRef dlref = system.ActorOf(downloader);
                remotedownloaderref.Tell(new RegisterActorMessage()
                {
                    ActorPath = localaddress + dlref.Path.ToString()
                });
            }
        }
Пример #2
0
        public void SendMessagesToRemoteActor()
        {
            int             total = 0;
            EventWaitHandle wait  = new AutoResetEvent(false);

            Actor actor = new LambdaActor(c => { total += (int)c; if (total >= 6)
                                                 {
                                                     wait.Set();
                                                 }
                                          });

            ActorSystem remotesystem = new ActorSystem();
            var         server       = new TcpServer("localhost", 3005, remotesystem);

            var result = remotesystem.ActorOf(actor, "myactor");
            var path   = result.Path.ToString();

            server.Start();

            var system    = new ActorSystem();
            var remoteref = system.ActorSelect("aktores.tcp://sys@localhost:3005/myactor");

            remoteref.Tell(1);
            remoteref.Tell(2);
            remoteref.Tell(3);

            wait.WaitOne();

            Assert.AreEqual(6, total);

            system.Shutdown();
            server.Stop();
            remotesystem.Shutdown();
        }
Пример #3
0
        public void ActorSelectUsingSlash()
        {
            ActorSystem system = new ActorSystem();

            var result = system.ActorOf(typeof(MyActor), "myactor");

            Assert.IsNotNull(result);

            var result2 = system.ActorSelect("/myactor");

            Assert.IsNotNull(result2);
            Assert.AreSame(result, result2);
        }
Пример #4
0
        public void CreateActorRefUsingTypeAndName()
        {
            ActorSystem system = new ActorSystem();

            var result = system.ActorOf(typeof(MyActor), "myactor");

            Assert.IsNotNull(result);

            var result2 = system.ActorSelect("myactor");

            Assert.IsNotNull(result2);
            Assert.AreSame(result, result2);
        }
Пример #5
0
        public void GetNullActorRefForUnknownPath()
        {
            ActorSystem system = new ActorSystem();

            Assert.IsNull(system.ActorSelect("unknown"));
        }