NAME
Async::Simple::Task - base class for asyncronous task packages
SYNOPSIS
use Async::Simple::Task::ChildPkg;
my $task = Async::Simple::Task::ChildPkg->new( %params ); # Creates a task, which waits for data and doing something with it
$task->put( $data ); # Put a task data to task
# ...do something useful in parent while our data working ...
my $result = $task->get; # result = undef because result is not ready yet
sleep $timeout; # or do something else....
my $result = $task->get; # your result
$task->put( $data ); # Put another data and so on,....
Result and data can be of any type you wish.
If your "get" can return undef as result, you should check $task->has_result, as a mark that result is ready.
DESCRIPTION
Allows to initialize async process.
After that, puts to him many similar packs of data one after other.
METHODS
new
Initialize async task routine.
my $task = Async::Simple::Task::ChildPkg->new( %optional_params );
put
Puts data to task
$self->put( $data );
get
Tries to read result from task.
Returns result or undef in case when result is not ready.
In case, your function can return undef as result, you shoud check $task->has_answer, as a mark of ready result.
my $result = $self->get();
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/
AUTHOR
ANTONC <antonc@cpan.org>
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>
Attributes
get
my $result = $task->get;
Reads from task, if something can be readed or returns undef after timeout.
You should override this.
put
$task->put( $data );
Makes task.
You should override this.
answer
Result of current task
has_answer
has_answer is true, if the task has been finished and result is ready.
timeout
timeout - positive numeric value = seconds between checking for result
id
Index of current task task.
This fields is just for your purpose, it is not intersected with any of internal logic.
Use id as a unique marker of task, in casw when you have a list of similar tasks.