MediaCloud-JobManager
view release on metacpan or search on metacpan
lib/MediaCloud/JobManager/Broker.pm view on Meta::CPAN
package MediaCloud::JobManager::Broker;
#
# Abstract job broker
#
use strict;
use warnings;
use Modern::Perl "2012";
use Moose::Role;
=head2 C<$self-E<gt>start_worker($function_name)>
Start a worker.
Should call C<$function_name-E<gt>run_locally( $args, $job )> to do the actual
work. C<$job> is job handle or identifier used by helpers (e.g.
C<set_job_progress()>).
Parameters:
=over 4
=item * Function name (e.g. "NinetyNineBottlesOfBeer")
=back
=cut
requires 'start_worker';
=head2 C<$self-E<gt>run_job_sync($function_name, $args, $priority)>
Run a job synchronously (wait for the job to complete and return the result).
Parameters:
=over 4
=item * Function name (e.g. "NinetyNineBottlesOfBeer")
=item * Hashref with arguments or undef
=back
Returns job result (whatever the job subroutine returned).
=cut
requires 'run_job_sync';
=head2 C<$self-E<gt>run_job_async($function_name, $args, $priority)>
Run a job asynchronously (add job to the job queue and return instantly).
Parameters:
=over 4
=item * Function name (e.g. "NinetyNineBottlesOfBeer")
=item * Hashref with arguments or undef
=back
Returns string job ID that can be used to track the job.
=cut
( run in 1.189 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )