Provided by: libmojo-ioloop-readwriteprocess-perl_0.33-1_all
NAME
Mojo::IOLoop::ReadWriteProcess::Queue - Queue for Mojo::IOLoop::ReadWriteProcess objects.
SYNOPSIS
use Mojo::IOLoop::ReadWriteProcess qw(queue process); my $n_proc = 20; my $fired; my $q = queue; $q->pool->maximum_processes(2); # Max 2 processes in parallel $q->queue->maximum_processes(10); # Max queue is 10 $q->add( process sub { return 42 } ) for 1..7; # Subscribe to all "stop" events in the pool $q->once(stop => sub { $fired++; }); # Consume the queue $q->consume(); my $all = $q->done; # All processes, Mojo::Collection of Mojo::IOLoop::ReadWriteProcess # Set your own running pool $q->pool(parallel sub { return 42 } => 5); # Set your own queue $q->queue(parallel sub { return 42 } => 20); $q->consume();
METHODS
Mojo::IOLoop::ReadWriteProcess::Queue inherits all methods from Mojo::Base and implements the following new ones. Note: It proxies all the other methods of Mojo::IOLoop::ReadWriteProcess for the whole process group. add use Mojo::IOLoop::ReadWriteProcess qw(queue process); my $q = queue(); $q->add(sub { print "Hello 2! " }); $q->add(process sub { print "Hello 2! " }); Add the process to the queue. consume use Mojo::IOLoop::ReadWriteProcess qw(queue); my $q = queue(); $q->add(sub { print "Hello 2! " }); $q->add(process sub { print "Hello 2! " }); $q->consume; # executes and exhaust the processes Starts the processes and empties the queue. Note: maximum_processes can be set both to the pool (number of process to be run in parallel), and for the queue (that gets exhausted during the "consume()" phase). $q->pool->maximum_processes(2); # Max 2 processes in parallel $q->queue->maximum_processes(10); # Max queue is 10 exhausted use Mojo::IOLoop::ReadWriteProcess qw(queue); my $q = queue(); $q->add(sub { print "Hello 2! " }); $q->add(process sub { print "Hello 2! " }); $q->consume; # executes and exhaust the processes $q->exhausted; # 1 Returns 1 if the queue is exhausted.
ENVIRONMENT
You can set the MOJO_PROCESS_MAXIMUM_PROCESSES environment variable to specify the the maximum number of processes allowed in the pool and the queue, that are Mojo::IOLoop::ReadWriteProcess::Pool instances. MOJO_PROCESS_MAXIMUM_PROCESSES=10000
LICENSE
Copyright (C) Ettore Di Giacinto. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
Ettore Di Giacinto <edigiacinto@suse.com>