work_queue_factory submits and maintains a number of
work_queue_worker(1) processes on various batch systems, such as Condor
and SGE. All the workers managed by a work_queue_factory process will
be directed to work for a specific master, or any set of masters matching a
given project name. work_queue_factory will automatically determine the
correct number of workers to have running, based on criteria set on the
command line. The decision on how many workers to run is reconsidered once per
minute.

By default, work_queue_factory will run as many workers as
the indicated masters have tasks ready to run. If there are multiple
masters, then enough workers will be started to satisfy their collective
needs. For example, if there are two masters with the same project name,
each with 10 tasks to run, then work_queue_factory will start a total
of 20 workers.

If the number of needed workers increases,
work_queue_factory will submit more workers to meet the desired need.
However, it will not run more than a fixed maximum number of workers, given
by the -W option.

If the need for workers drops, work_queue_factory does not
remove them immediately, but waits to them to exit on their own. (This
happens when the worker has been idle for a certain time.) A minimum number
of workers will be maintained, given by the -w option.

If given the -c option, then work_queue_factory will
consider the capacity reported by each master. The capacity is the estimated
number of workers that the master thinks it can handle, based on the task
execution and data transfer times currently observed at the master. With the
-c option on, work_queue_factory will consider the master's capacity
to be the maximum number of workers to run.

If work_queue_factory receives a terminating signal, it
will attempt to remove all running workers before exiting.