So when I call $gearman->doBackgroundJob('something~myJob', $workload); in my for, doesn't mean that I have a separate PHP process?
I don't understand what you say by "separate PHP process for each job". Do you can tell me more about this, please?
Calling a function on the server will not create a worker; it
will just push a job into a queue. It's up to you to run a
separate process which looks at that queue and does the work.
Normally, this would be a command-line script managed by something
like Supervisor [http://supervisord.org/] or the Gearman Manager
that Felipe mentioned.
The number of workers you need depends on what you're doing -
since these are background jobs, you presumably don't need them
all to happen at once, so you just need enough workers that they
get through the tasks on average faster than they come in. You can
use whatever tool you want to make sure there are enough workers,
but Gearman will never create them for you.
-- Rowan Collins [IMSoP]