// This is the current bottleneck public Space(CreateSpace createSpaceMessage) { _uniqueSpaceName = createSpaceMessage.UniqueSpaceName; _size = createSpaceMessage.Size; _keywords = createSpaceMessage.Keywords; _keywordActors = new List<ActorSelection>(); foreach (var keyword in _keywords) { ActorSelection keywordActor = Context.System.ActorSelection($"/user/KeywordsRoot/{keyword}"); _keywordActors.Add(keywordActor); } Receive<RequestAd>(message => { var request = new GetBestAdForSpace(_uniqueSpaceName, _size); // Create a request for the best ad, send it to our keywords. Props props = Props.Create<ImpressionRequest>(Sender, request, _keywordActors); IActorRef impressionRequest = Context.ActorOf(props); }); }
public GetBestAdForSpace(string uniqueSpaceName, AdSpaceSize adSpaceSize) { UniqueSpaceName = uniqueSpaceName; Size = adSpaceSize; }
public CreateSpace(string uniqueSpaceName, AdSpaceSize adSpaceSize, params string[] keywords) { UniqueSpaceName = uniqueSpaceName; Size = adSpaceSize; Keywords = keywords; }