Broker-Async
view release on metacpan or search on metacpan
}
my $broker = Broker::Async->new(workers => \@workers);
for my $future (map $broker->do($_), @requests) {
my $result = $future->get;
...
}
# DESCRIPTION
This module brokers tasks for multiple asynchronous workers. A worker can be any code reference that returns a [Future](https://metacpan.org/pod/Future), representing work awaiting completion.
Some common use cases include throttling asynchronous requests to a server, or delegating tasks to a limited number of processes.
# ATTRIBUTES
## workers
An array ref of workers used for handling tasks.
Can be a code reference, a hash ref of [Broker::Async::Worker](https://metacpan.org/pod/Broker::Async::Worker) arguments, or a [Broker::Async::Worker](https://metacpan.org/pod/Broker::Async::Worker) object.
Every invocation of a worker must return a [Future](https://metacpan.org/pod/Future) object.
Under the hood, code and hash references are simply used to instantiate a [Broker::Async::Worker](https://metacpan.org/pod/Broker::Async::Worker) object.
lib/Broker/Async.pm view on Meta::CPAN
}
my $broker = Broker::Async->new(workers => \@workers);
for my $future (map $broker->do($_), @requests) {
my $result = $future->get;
...
}
=head1 DESCRIPTION
This module brokers tasks for multiple asynchronous workers. A worker can be any code reference that returns a L<Future>, representing work awaiting completion.
Some common use cases include throttling asynchronous requests to a server, or delegating tasks to a limited number of processes.
=cut
our $VERSION = "0.0.6"; # __VERSION__
=head1 ATTRIBUTES
=head2 workers
An array ref of workers used for handling tasks.
lib/Broker/Async/Worker.pm view on Meta::CPAN
use warnings;
use Carp;
use Scalar::Util qw( blessed weaken );
=head1 NAME
Broker::Async::Worker
=head1 DESCRIPTION
Used by L<Broker::Async> for tracking the state of asynchronous work.
=cut
our $VERSION = "0.0.6"; # __VERSION__
=head1 ATTRIBUTES
=head2 code
The code reference used to start the work.
( run in 0.244 second using v1.01-cache-2.11-cpan-0d8aa00de5b )