The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Parallel::Tiny

DESCRIPTION

Provides a very simple, no frills fork manager.

SYNOPSIS

    my $obj = My::Handler->new();

    my $forker = Parallel::Tiny->new(
        handler      => $obj,
        subname      => 'start', # My::Handler must implement start()
        workers      => 4,
        worker_total => 'infinite',
    );

    $forker->run();

METHODS

new()

Returns a new Parallel::Tiny fork manager.

takes arguments as a hash or hashref with the following arguments:

  handler - an object you provide which has a run() method (unless you define "subname")
            (required)

  reap_timeout - the number of seconds to wait between runs of
            waitpid() to reap children
            (default .1)

  subname - the name of the sub you want to invoke on child spawn
            (default 'run')

  workers - the number of simoltaneous forked processes you
            want to allow at one time
            (default 1)

  worker_total - the total number of processes that you want to run
            (default 1)

You can for instance, say that you want to run 100 proccesses, but only 4 at a time like this:

    my $forker = Parallel::Tiny->new(
        handler      => $obj,
        workers      => 4,
        worker_total => 100,
    );

If you want you can provide 'infinite' for worker_total. If you do this, you're responsible for stopping the fork manager!

Signals: ---

If the parent is sent SIGTERM, the parent will wait to reap all children.

If the parent is killed before its children finish, children are configured to receive HUP.

run()

Start spooling jobs according to the configuration.