MediaCloud-JobManager

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "Carp" : "0",
            "Data::Dumper" : "0",
            "DateTime" : "0",
            "File::Slurp" : "0",
            "File::Temp" : "0",
            "IO::File" : "0",
            "IO::Socket::INET" : "0",
            "JSON" : "2.90",
            "JSON::XS" : "3.02",
            "Log::Log4perl" : "0",
            "Modern::Perl" : "0",
            "Moose" : "2.1005",
            "Moose::Role" : "2.1005",
            "MooseX::Singleton" : "0",
            "Net::AMQP::RabbitMQ" : "2.100001",
            "Proc::Background" : "0",
            "Readonly" : "0",
            "Test::More" : "0",
            "Test::NoWarnings" : "0",
            "Test::Strict" : "0",
            "Tie::Cache" : "0",

META.yml  view on Meta::CPAN

  Carp: '0'
  Data::Dumper: '0'
  DateTime: '0'
  File::Slurp: '0'
  File::Temp: '0'
  IO::File: '0'
  IO::Socket::INET: '0'
  JSON: '2.90'
  JSON::XS: '3.02'
  Log::Log4perl: '0'
  Modern::Perl: '0'
  Moose: '2.1005'
  Moose::Role: '2.1005'
  MooseX::Singleton: '0'
  Net::AMQP::RabbitMQ: '2.100001'
  Proc::Background: '0'
  Readonly: '0'
  Test::More: '0'
  Test::NoWarnings: '0'
  Test::Strict: '0'
  Tie::Cache: '0'

Makefile.PL  view on Meta::CPAN

        'Carp'                  => 0,
        'Data::Dumper'          => 0,
        'DateTime'              => 0,
        'File::Slurp'           => 0,
        'File::Temp'            => 0,
        'IO::File'              => 0,
        'IO::Socket::INET'      => 0,
        'JSON'                  => '2.90',
        'JSON::XS'              => '3.02',
        'Log::Log4perl'         => 0,
        'Modern::Perl'          => 0,
        'Moose'                 => '2.1005',
        'Moose::Role'           => '2.1005',
        'MooseX::Singleton'     => 0,
        'Net::AMQP::RabbitMQ'   => '2.100001',
        'Proc::Background'      => 0,
        'Readonly'              => 0,
        'Test::More'            => 0,
        'Test::NoWarnings'      => 0,
        'Test::Strict'          => 0,
        'Tie::Cache'            => 0,

lib/MediaCloud/JobManager.pm  view on Meta::CPAN

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(

lib/MediaCloud/JobManager/Admin.pm  view on Meta::CPAN

=head1 NAME

C<MediaCloud::JobManager::Admin> - administration utilities.

=cut

package MediaCloud::JobManager::Admin;

use strict;
use warnings;
use Modern::Perl "2012";

use MediaCloud::JobManager;
use MediaCloud::JobManager::Configuration;

sub show_jobs($)
{
    my $config = shift;

    unless ( $config )
    {

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()>).

lib/MediaCloud/JobManager/Broker/Null.pm  view on Meta::CPAN

#
# Null broker used for initialization
#
# Usage:
#
# MediaCloud::JobManager::Broker::Null->new();
#

use strict;
use warnings;
use Modern::Perl "2012";

use Moose;
with 'MediaCloud::JobManager::Broker';

use Readonly;

use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init(
    {
        level  => $DEBUG,

lib/MediaCloud/JobManager/Broker/RabbitMQ.pm  view on Meta::CPAN

#
# RabbitMQ job broker (using Celery protocol)
#
# Usage:
#
# MediaCloud::JobManager::Broker::RabbitMQ->new();
#

use strict;
use warnings;
use Modern::Perl "2012";

use Moose;
with 'MediaCloud::JobManager::Broker';

use Net::AMQP::RabbitMQ;
use UUID::Tiny ':std';
use Tie::Cache;
use JSON;
use Data::Dumper;
use Readonly;

lib/MediaCloud/JobManager/Configuration.pm  view on Meta::CPAN

package MediaCloud::JobManager::Configuration;

#
# Default configuration
#

use strict;
use warnings;
use Modern::Perl "2012";

use Moose 2.1005;
use MooseX::Singleton;    # ->instance becomes available
use MediaCloud::JobManager::Job;
use MediaCloud::JobManager::Broker;
use MediaCloud::JobManager::Broker::Null;
use MediaCloud::JobManager::Broker::RabbitMQ;

# Instance of specific job broker
has 'broker' => (

lib/MediaCloud/JobManager/Job.pm  view on Meta::CPAN

An instance of the function doing the actual job with specific parameters.

=back

=cut

package MediaCloud::JobManager::Job;

use strict;
use warnings;
use Modern::Perl "2012";
use feature qw(switch);

use Moose::Role 2.1005;

use MediaCloud::JobManager;    # helper subroutines
use MediaCloud::JobManager::Configuration;

use Time::HiRes;
use Data::Dumper;
use DateTime;

lib/MediaCloud/JobManager/Worker.pm  view on Meta::CPAN

package MediaCloud::JobManager::Worker;

#
# Worker helpers
#

use strict;
use warnings;
use Modern::Perl "2012";

use MediaCloud::JobManager;
use MediaCloud::JobManager::Configuration;

use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init( { level => $DEBUG, utf8 => 1, layout => "%d{ISO8601} [%P]: %m%n" } );

# Import function Perl module by path or name
sub import_function($)
{

samples/Addition.pm  view on Meta::CPAN

package Addition;

use strict;
use warnings;
use Modern::Perl "2012";

use Moose;
with 'MediaCloud::JobManager::Job';

# Run job
sub run($;$)
{
    my ( $self, $args ) = @_;

    my $a = $args->{ a };

samples/AdditionAlwaysFails.pm  view on Meta::CPAN

package AdditionAlwaysFails;

use strict;
use warnings;
use Modern::Perl "2012";

use Moose;
with 'MediaCloud::JobManager::Job';

# Run job
sub run($;$)
{
    my ( $self, $args ) = @_;

    my $a = $args->{ a };

samples/NinetyNineBottlesOfBeer.pm  view on Meta::CPAN

package NinetyNineBottlesOfBeer;

use strict;
use warnings;
use Modern::Perl "2012";

use Moose;
with 'MediaCloud::JobManager::Job';

use Time::HiRes qw(usleep nanosleep);
use Data::Dumper;
use Readonly;

# in microseconds
Readonly my $SLEEP_BETWEEN_BOTTLES => 100000;

samples/sample_client.pl  view on Meta::CPAN

#!/usr/bin/env perl

use strict;
use warnings;
use Modern::Perl "2012";

use FindBin;
use lib "$FindBin::Bin/../lib";
use lib "$FindBin::Bin/../samples";

use MediaCloud::JobManager;
use MediaCloud::JobManager::Admin;
use NinetyNineBottlesOfBeer;
use Addition;
use AdditionAlwaysFails;

script/mjm_worker.pl  view on Meta::CPAN


or:

	# Run instance of the function from "path/to/NinetyNineBottlesOfBeer.pm"
	mjm_worker.pl path/to/NinetyNineBottlesOfBeer.pm

=cut

use strict;
use warnings;
use Modern::Perl "2012";

use FindBin;

# Include workers from the current path and its lib/
use lib "./";
use lib "./lib/";

use lib "$FindBin::Bin/../lib";
use lib "$FindBin::Bin/../samples";



( run in 1.325 second using v1.01-cache-2.11-cpan-4d50c553e7e )