static void Main(string[] args) { Address address = new Address(args[0]); ActorSystem system = new ActorSystem(); TcpServer host = new TcpServer(address.HostName, address.Port, system); host.Start(); Resolver resolver = new Resolver(); Harvester harvester = new Harvester(); RouterActor router = new RouterActor(); ActorRef resolverref = system.ActorOf(resolver, "resolver"); ActorRef downloaderref = system.ActorOf(router, "downloader"); ActorRef harvesterref = system.ActorOf(harvester, "harvester"); for (int k = 1; k <= 10; k++) { Downloader downloader = new Downloader(); downloader.Harvester = harvesterref; ActorRef dlref = system.ActorOf(downloader); router.Register(dlref); } resolver.Downloader = downloaderref; harvester.Resolver = resolverref; foreach (var arg in args.Skip(1)) { resolverref.Tell(arg); } }
static void Main(string[] args) { ActorSystem system = new ActorSystem(); Resolver resolver = new Resolver(); //Downloader downloader = new Downloader(); Harvester harvester = new Harvester(); RouterActor router = new RouterActor(); ActorRef resolverref = system.ActorOf(resolver, "resolver"); //ActorRef downloaderref = system.ActorOf(downloader, "downloader"); ActorRef downloaderref = system.ActorOf(router, "downloader"); ActorRef harvesterref = system.ActorOf(harvester, "harvester"); for (int k = 1; k <= 10; k++) { Downloader downloader = new Downloader(); downloader.Harvester = harvesterref; ActorRef dlref = system.ActorOf(downloader); router.Register(dlref); } resolver.Downloader = downloaderref; //downloader.Harvester = harvesterref; harvester.Resolver = resolverref; foreach (var arg in args) { resolverref.Tell(arg); } }
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() }); } }
public void CreateRouterAndSendMessageToActor() { ActorSystem system = new ActorSystem(); int total = 0; EventWaitHandle wait = new AutoResetEvent(false); Actor actor = new LambdaActor(c => { total += (int)c; wait.Set(); }); var actorref = system.ActorOf(actor, "myactor"); var router = new RouterActor(); router.Register(actorref); var routerref = system.ActorOf(router, "myrouter"); routerref.Tell(3); Assert.IsTrue(wait.WaitOne(1000)); Assert.AreEqual(3, total); system.Shutdown(); }
public void CreateRouterAndSendMessageToActors() { ActorSystem system = new ActorSystem(); int total = 0; EventWaitHandle wait = new AutoResetEvent(false); var router = new RouterActor(); var routerref = system.ActorOf(router, "myrouter"); for (int k = 0; k < 100; k++) { Actor actor = new LambdaActor(c => { lock (system) { total += (int)c; } if (total >= 10) { wait.Set(); } }); var actorref = system.ActorOf(actor); router.Register(actorref); } routerref.Tell(1); routerref.Tell(2); routerref.Tell(3); routerref.Tell(4); Assert.IsTrue(wait.WaitOne(1000)); Assert.AreEqual(10, total); system.Shutdown(); }