NAME Sys::ForkQueue - Run any number of jobs in a controlled manner in parallel. SYNOPSIS use Sys::ForkQueue; my @jobs = qw(1 2 3 4 5 6 7 8 9 10); my $Queue = Sys::ForkQueue::->new({ 'jobs' => \@jobs, 'code' => \&worker, 'logger' => Log::Tree::->new(), }); $Queue->run(); sub worker { ... } DESCRIPTION This class implements a job controller that can run any number of jobs with configurable parllelism. ATTRIBUTES chdir Change to this directory after fork. If the given directory does not exist, change to /. umask Set this umask after fork. jobs Must contain a list of job names. Each will be passed to the CODEREF in $self->code() when it's runnable. code The CODEREF. This will called for every job in the list. Ths first argument will be the job name. The second one will be $self->args() which is an hashref. args This will be passed to every invocation of $self->code(). concurrency Run this many jobs in parallel. redirect_output Redirect all output to this file. chdir Change to this directory after fork()ing. setsid Call setsid after fork(). delayedfork Sleep for a brief time after fork. Set this to false if you plan to run many short lived jobs. NAME Sys::ForkQueue - Run any number of jobs in a controlled manner in parallel. SUBROUTINES/METHODS run Run all enqueud jobs. EAGAIN Imported from Errno. SIGTERM Imported from POSIX. WNOHANG Imported from POSIX. 1; # End of Sys::ForkQueue AUTHOR Dominik Schulz COPYRIGHT AND LICENSE This software is copyright (c) 2012 by Dominik Schulz. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.