private void Receives() { Receive <AttemptCrawl>(attempt => { if (Uri.IsWellFormedUriString(attempt.RawStr, UriKind.Absolute)) { var startJob = new StartJob(new CrawlJob(new Uri(attempt.RawStr, UriKind.Absolute), true), Sender); CommandRouter.Tell(startJob); CommandRouter.Ask <Routees>(new GetRoutees()).ContinueWith(tr => { var grrr = new SignalRActor.DebugCluster(string.Format("{0} has {1} routees: {2}", CommandRouter, tr.Result.Members.Count(), string.Join(",", tr.Result.Members.Select( y => y.ToString())))); return(grrr); }).PipeTo(Sender); Sender.Tell(startJob); } else { Sender.Tell(new BadCrawlAttempt(attempt.RawStr, "Not an absolute URI")); } }); }
private void Receives() { Receive <AttemptCrawl>(attempt => { if (Uri.IsWellFormedUriString(attempt.RawStr, UriKind.Absolute)) { var startJob = new StartJob(new CrawlJob(new Uri(attempt.RawStr, UriKind.Absolute), true), Sender); CommandRouter.Tell(startJob); var sender = Sender; // need to close over `Sender` when using `PipeTo` CommandRouter.Ask <Routees>(new GetRoutees()).ContinueWith(tr => { var grrr = new SignalRActor.DebugCluster( $"{CommandRouter} has {tr.Result.Members.Count()} routees: {string.Join(",", tr.Result.Members.Select(y => y.ToString()))}"); return(grrr); }).PipeTo(sender); Sender.Tell(startJob); } else { Sender.Tell(new BadCrawlAttempt(attempt.RawStr, "Not an absolute URI")); } }); }
private void Receives() { Receive<AttemptCrawl>(attempt => { if (Uri.IsWellFormedUriString(attempt.RawStr, UriKind.Absolute)) { var startJob = new StartJob(new CrawlJob(new Uri(attempt.RawStr, UriKind.Absolute), true), Sender); CommandRouter.Tell(startJob); CommandRouter.Ask<Routees>(new GetRoutees()).ContinueWith(tr => { var grrr = new SignalRActor.DebugCluster(string.Format("{0} has {1} routees: {2}", CommandRouter, tr.Result.Members.Count(), string.Join(",", tr.Result.Members.Select( y => y.ToString())))); return grrr; }).PipeTo(Sender); Sender.Tell(startJob); } else { Sender.Tell(new BadCrawlAttempt(attempt.RawStr, "Not an absolute URI")); } }); }