1Mojo::IOLoop::ReadWriteUPsreorceCsosn:t:rQiubeuutee(d3M)Poejrol::DIoOcLuomoepn:t:aRteiaodnWriteProcess::Queue(3)
2
3
4

NAME

6       Mojo::IOLoop::ReadWriteProcess::Queue - Queue for
7       Mojo::IOLoop::ReadWriteProcess objects.
8

SYNOPSIS

10           use Mojo::IOLoop::ReadWriteProcess qw(queue process);
11           my $n_proc = 20;
12           my $fired;
13
14           my $q = queue;
15
16           $q->pool->maximum_processes(2); # Max 2 processes in parallel
17           $q->queue->maximum_processes(10); # Max queue is 10
18
19           $q->add( process sub { return 42 } ) for 1..7;
20
21           # Subscribe to all "stop" events in the pool
22           $q->once(stop => sub { $fired++; });
23
24           # Consume the queue
25           $q->consume();
26
27           my $all = $q->done; # All processes, Mojo::Collection of Mojo::IOLoop::ReadWriteProcess
28
29           # Set your own running pool
30           $q->pool(parallel sub { return 42 } => 5);
31
32           # Set your own queue
33           $q->queue(parallel sub { return 42 } => 20);
34
35           $q->consume();
36

METHODS

38       Mojo::IOLoop::ReadWriteProcess::Queue inherits all methods from
39       Mojo::Base and implements the following new ones.  Note: It proxies all
40       the other methods of Mojo::IOLoop::ReadWriteProcess for the whole
41       process group.
42
43   add
44           use Mojo::IOLoop::ReadWriteProcess qw(queue process);
45           my $q = queue();
46           $q->add(sub { print "Hello 2! " });
47           $q->add(process sub { print "Hello 2! " });
48
49       Add the process to the queue.
50
51   consume
52           use Mojo::IOLoop::ReadWriteProcess qw(queue);
53           my $q = queue();
54           $q->add(sub { print "Hello 2! " });
55           $q->add(process sub { print "Hello 2! " });
56           $q->consume; # executes and exhaust the processes
57
58       Starts the processes and empties the queue.  Note: maximum_processes
59       can be set both to the pool (number of process to be run in parallel),
60       and for the queue (that gets exhausted during the "consume()" phase).
61
62           $q->pool->maximum_processes(2); # Max 2 processes in parallel
63           $q->queue->maximum_processes(10); # Max queue is 10
64
65   exhausted
66           use Mojo::IOLoop::ReadWriteProcess qw(queue);
67           my $q = queue();
68           $q->add(sub { print "Hello 2! " });
69           $q->add(process sub { print "Hello 2! " });
70           $q->consume; # executes and exhaust the processes
71           $q->exhausted; # 1
72
73       Returns 1 if the queue is exhausted.
74

ENVIRONMENT

76       You can set the MOJO_PROCESS_MAXIMUM_PROCESSES environment variable to
77       specify the the maximum number of processes allowed in the pool and the
78       queue, that are Mojo::IOLoop::ReadWriteProcess::Pool instances.
79
80           MOJO_PROCESS_MAXIMUM_PROCESSES=10000
81

LICENSE

83       Copyright (C) Ettore Di Giacinto.
84
85       This library is free software; you can redistribute it and/or modify it
86       under the same terms as Perl itself.
87

AUTHOR

89       Ettore Di Giacinto <edigiacinto@suse.com>
90
91
92
93perl v5.32.0                      2020-M1o0j-o0:4:IOLoop::ReadWriteProcess::Queue(3)
Impressum