Sending data to serial and multiple valves

This is my situation and I'm still new, this is just a setup I have going right now. Lets say I have 3 water valves and I am communicating to the arduino by a serial connection. Right now I have it parsing by looking for the end character(which is a semicolon) and everything before that is considered my string then from there breaks apart the string by spaces so the format I send would be: pump seconds pump seconds pump seconds; Ex. 1 3 2 3 3 3.. That would be 3 sec for each pump. I have it looking for the pump number since I'm not always going to want to put in an arg for each. Just want #3 pump would be: 3 3; Basically looks for one saying which pump and the next arg for how long to keep it open. With this it does 1 pump at a time. I would like to get all pumps to start at one time and stop whenever they need to.

Am I basically going to be looking to do a round robin that keeps checking for times on each one or the blink without delay example? Also is the method im using for getting data from the serial a correct way or is there a better method to that?

Edit: I see theres lots of threads about blink without delay, I guess just ignore that part since it seems to be it unless you can throw out some useful info about doing that with 3 different outputs, but I still need to check out the examples for that.

Am I basically going to be looking to do a round robin that keeps checking for times on each one or the blink without delay example?

Yes. You'll look for serial data, and collect whatever is present, up to the end-of-packet marker, if present.

Next, you'll parse the serial data, if the end-of-packet marker was received. Start any pumps that need to be started, and record when they were started (using millis() and an array).

Finally, you see if it's time to turn off any pump that is running, based on "now", when the pump started, and how long it is to run, in a loop that iterates over each pump.

Also is the method im using for getting data from the serial a correct way or is there a better method to that?

It is a correct way. It is possible to send the data as binary, and avoid the need to convert the strings back to numbers, but that is a complex process. If what you have works, stick with it, until you need to pass serial data more quickly. For turning pumps on and off, that need will probably never arise.

I see theres lots of threads about blink without delay, I guess just ignore that part since it seems to be it unless you can throw out some useful info about doing that with 3 different outputs, but I still need to check out the examples for that.

Anything you can do once, you can do multiple times, using loops and arrays.

Thanks for your reply. I just finished up getting a working version running.