Thanks. These makes a lot of sense. After reading the some of the other replies I do think that in the future I will go to a temporary queue and then process it in a non-realtime manner, but for now I'm going to implement a scheme very similar to what you have proposed.
Thanks again.