Async-Simple-Pool
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Async/Simple/Pool.pm view on Meta::CPAN
=head1 DESCRIPTION
Allows to work with pool of async processes.
There are many other similar packages you can find on CPAN: Async::Queue, Anyevent::FIFO, Task::Queue, Proc::Simple.
The main difference of this package is convenience and simplicity of usage.
=head1 METHODS
$pool->new( various params as described above )
$pool->process( $optional_data_ref )
=head1 SUPPORT AND DOCUMENTATION
After installing, you can find documentation for this module with the
perldoc command.
perldoc Async::Simple::Task
You can also look for information at:
RT, CPAN's request tracker (report bugs here)
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Async-Simple-Task
AnnoCPAN, Annotated CPAN documentation
http://annocpan.org/dist/Async-Simple-Task
CPAN Ratings
http://cpanratings.perl.org/d/Async-Simple-Task
Search CPAN
http://search.cpan.org/dist/Async-Simple-Task/
=head1 AUTHOR
ANTONC <antonc@cpan.org>
=head1 LICENSE
This program is free software; you can redistribute it and/or modify it
under the terms of the the Artistic License (2.0). You may obtain a
copy of the full license at:
L<http://www.perlfoundation.org/artistic_license_2_0>
=cut
# Async::Queue, Anyevent::FIFO - very similar to this, but have no enough sugar, has Anyevent dependence, has no prefork and fixed pool
# Task::Pool - wery similar, uses tasks, results represented as a spream
# Task::Queue - low level code
# Proc::Simple - wery similar byt not flexible enough
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Class::Load;
use Clone;
use JSON::XS;
our $VERSION = '0.18';
=head2 data
You can pass hashref or arrayref as data
When it is array, then each item of it will be passed to task as task params
ids for internal format will be generated automatically by increasing from 0
When is is hashref, then each value of hash will be passed to task as task params
ids for internal format will be the same as in your hash
In both cases it converts to internal format:
{ id => { source => paramref1, result => if_processed1 }, { source => paramref2, result => if_processed2 }, ... };
=cut
has data => (
is => 'rw',
isa => 'HashRef[HashRef]',
default => sub { return {} },
);
=head2 tasks_count
tasks_count - an integer number of tasks that will be created (defailt is 10).
=cut
has tasks_count => (
is => 'ro',
isa => 'Int',
required => 1,
default => 10,
);
=head2 flush_data
flush_data - (1|0) - remove used data and results after is has been readed in $self->process;
=cut
has flush_data => (
is => 'rw',
isa => 'Str',
default => 0,
);
=head2 result_type
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.295 second using v1.00-cache-2.02-grep-82fe00e-cpan-d29e8ade9f55 )