You can also have many worker processes on the same shared queues, for
better resource utilization.
For example, suppose you want to get the all latest updates quickly. So
you want to d/l enough update files in parallel to saturate your ADSL
line, instead of getting them one at a time, as they get eaten by the
filein mechanism.
So you just make 10 copies of your d/l process, make them loop on
getting waiting for a request on the SharedQueue and performing it. If
the results handling is independent (like saving the update to the
updates directory) then you're done.
If you want to synchronize the handling of results (for example, to show
them in a single ordered list), have the workers all write to a single
shared queue, with a single reader.
This approach seems simpler than forking a process every time I get a
request, and it's worked for me for small hacks.