# NAME Parallel::Tiny # DESCRIPTION Provides a simple, no frills fork manager. # SYNOPSIS Given an object that provides a `run()` method, you can create a `Parallel::Tiny` fork manager object that will execute that method several times. my $obj = My::Handler->new(); my $forker = Parallel::Tiny->new( handler => $obj, workers => 4, worker_total => 32, ); $forker->run(); In the above example we will execute the `run()` method for a `My::Handler` object 4 workers at a time, until 32 total workers have completed/died. # METHODS - new() Returns a new `Parallel::Tiny` fork manager. Takes the following arguments as a hash or hashref: { handler => $handler, # provide an object with a run() method, this will be your worker (required) reap_timeout => $reap_timeout, # how long to wait in between reaping children (default ".1") subname => $subname, # a method name to execute for the $handler (default "run") workers => $workers, # the number of workers that can run simultaneously (default 1) worker_total => $worker_total, # the total number of times to run before stopping (default 1) } For instance, you could run 100 workers, 4 workers at a time: my $forker = Parallel::Tiny->new( handler => $obj, workers => 4, worker_total => 100, ); `infinite` can be provided for the `$worker_total` but you will need to manage stopping the fork manager elsewhere. If the parent is sent `SIGTERM` it will wait to reap all currently executing children before finishing. If the parent is killed, children will receive `SIGHUP`, which you will need to deal with in your `$handler`. - run() Start running a number of parallel workers equal to `$workers`, until a number of workers equal to `$worker_total` have been completed.