Proper way of using Actor Pools

I am using actors to send requests to other servers via HTTP calls. The reason I chose this is because I will need to do multiple requests in parallel (let’s say 10). So, I have one actor scheduler that reads entries from the database and sends (via tell) a command to another actor requestSender that sends the requests, reads the result and does some processing. So, right now I have an ActorsModule that is configured like this:

bindActor(CheckScheduler.class, "scheduler", p -> new RoundRobinPool(1).props(p));
bindActor(RequestSenderActor.class, "requestSender", p -> new RoundRobinPool(10).props(p));

Guice is used to inject the request sender like this:

private ActorRef requestSender;

The tell is done in a for loop:

for(int count = 0; count<10; count++) {

The scheduler also listens for a response, so when it receives one back (indicating that the requestSender is done), if there are more than 10 requests that need to be sent, it gets the next one and sends it to the request sender. In short, I always have at most 10 requests in parallel.

However, I feel that I am not doing things properly. Mostly because I can’t find a way to scale the number of request sender actors. What if I need only 5… or 15, depending on the resources I have available? How would I dynamically alter the number of actors in the pool? I think that there may be a better way of doing things. Any suggestions?