MediaCloud-JobManager
view release on metacpan or search on metacpan
lib/MediaCloud/JobManager.pm view on Meta::CPAN
=head1 NAME
C<MediaCloud::JobManager> - Perl worker / client library for running jobs
asynchronously.
=head1 SYNOPSIS
use MediaCloud::JobManager;
=head1 DESCRIPTION
Run jobs locally, remotely or remotely + asynchronously.
=head2 EXPORT
None by default.
=head1 AUTHOR
Linas Valiukas, E<lt>lvaliukas@cyber.law.harvard.eduE<gt>
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2013- Linas Valiukas, 2013- Berkman Center for Internet &
Society.
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself, either Perl version 5.18.2 or, at your option,
any later version of Perl 5 you may have available.
=cut
package MediaCloud::JobManager;
our $VERSION = '0.27';
use strict;
use warnings;
use Modern::Perl "2012";
use MediaCloud::JobManager::Configuration;
use UUID::Tiny ':std';
use Digest::SHA qw(sha256_hex);
use Carp;
use Readonly;
use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init(
{
level => $DEBUG,
utf8 => 1,
layout => "%d{ISO8601} [%P]: %m%n"
}
);
# flush sockets after every write
$| = 1;
# Max. job ID length for MediaCloud::JobManager jobs (when
# MediaCloud::JobManager::Job comes up with a job ID of its own)
Readonly my $MJM_JOB_ID_MAX_LENGTH => 256;
=head2 (static) C<job_status($function_name, $job_id[, $config])>
Get job status.
Parameters:
=over 4
=item * Function name (e.g. "NinetyNineBottlesOfBeer")
=item * Job ID (e.g. "H:localhost.localdomain:8")
=back
Returns hashref with the job status, e.g.:
=begin text
{ # Job ID that was passed as a parameter 'job_id' =>
'H:tundra.home:8',
# Whether or not the job is currently running
'running' => 1,
# Numerator and denominator of the job's progress
# (in this example, job is 1333/2000 complete)
'numerator' => 1333,
'denominator' => 2000
};
=end text
Returns undef if the job ID was not found; dies on error.
=cut
( run in 0.961 second using v1.01-cache-2.11-cpan-0fb53d1c279 )