Gearman-JobScheduler

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN

        'Email::Sender::Simple' => 0,
        'File::Path' => 0,
        'File::ReadBackwards' => 0,
        'File::Slurp' => 0,
        'File::Temp' => 0,
        'Gearman::XS' => 0,
        'IO::File' => 0,
        'IO::Socket::INET' => 0,
        'JSON' => 0,
        'Log::Log4perl' => 0,
        'Modern::Perl' => 0,
        'Moose' => '2.1005',
        'Moose::Role' => '2.1005',
        'MooseX::Singleton' => 0,
        'Net::Telnet' => 0,
        'Proc::Background' => 0,
        'Readonly' => 0,
        'Sys::Hostname' => 0,
        'Test::More' => 0,
        'Test::NoWarnings' => 0,
        'Test::Strict' => 0,

META.yml  view on Meta::CPAN

  Email::Sender::Simple: 0,
  File::Path: 0,
  File::ReadBackwards: 0,
  File::Slurp: 0,
  File::Temp: 0,
  Gearman::XS: 0,
  IO::File: 0,
  IO::Socket::INET: 0,
  JSON: 0,
  Log::Log4perl: 0,
  Modern::Perl: 0,
  Moose: 2.1005,
  Moose::Role: 2.1005,
  MooseX::Singleton: 0,
  Net::Telnet: 0,
  Proc::Background: 0,
  Readonly: 0,
  Sys::Hostname: 0,
  Test::More: 0
  Test::NoWarnings: 0
  Test::Strict: 0

lib/Gearman/JobScheduler.pm  view on Meta::CPAN


C<Gearman::JobScheduler> - Gearman job scheduler utilities.

=cut
package Gearman::JobScheduler;

$VERSION = '0.16';

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

use Gearman::JobScheduler::Configuration;

use Gearman::XS qw(:constants);
use Gearman::XS::Client;

# Hashref serializing / unserializing
use Data::Compare;
use Data::Dumper;

lib/Gearman/JobScheduler/AbstractFunction.pm  view on Meta::CPAN


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

=back

=cut
package Gearman::JobScheduler::AbstractFunction;

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

use Moose::Role 2.1005;

use Gearman::JobScheduler;	# helper subroutines
use Gearman::JobScheduler::Configuration;
use Gearman::JobScheduler::ErrorLogTrapper;

use Gearman::XS qw(:constants);
use Gearman::XS::Client;

lib/Gearman/JobScheduler/Admin.pm  view on Meta::CPAN


Reimplements functionality of "gearadmin"
(http://bazaar.launchpad.net/~tangent-trunk/gearmand/1.2/view/head:/bin/gearadmin.cc)
in Perl.

=cut
package Gearman::JobScheduler::Admin;

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

use Gearman::JobScheduler;
use Gearman::JobScheduler::Configuration;

# Neither "Gearman" nor "Gearman::XS" modules provide the administration
# functionality, so we'll connect directly to Gearman and send / receive
# commands ourselves.
use Net::Telnet;

# Connection timeout

lib/Gearman/JobScheduler/Configuration.pm  view on Meta::CPAN

package Gearman::JobScheduler::Configuration;

#
# GJS default configuration
#

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

use Moose 2.1005;
use MooseX::Singleton;	# ->instance becomes available


# Arrayref of default Gearman servers to connect to
has 'gearman_servers' => (
	is => 'rw',
	isa => 'ArrayRef[Str]',
	default => sub { [ '127.0.0.1:4730' ] }

lib/Gearman/JobScheduler/Worker.pm  view on Meta::CPAN

package Gearman::JobScheduler::Worker;

#
# GJS worker helpers
#

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

use Gearman::JobScheduler;
use Gearman::JobScheduler::Configuration;

use Gearman::XS qw(:constants);
use Gearman::XS::Worker;

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

samples/Addition.pm  view on Meta::CPAN

package Addition;

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

use Moose;
with 'Gearman::JobScheduler::AbstractFunction';


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

samples/AdditionAlwaysFails.pm  view on Meta::CPAN

package AdditionAlwaysFails;

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

use Moose;
with 'Gearman::JobScheduler::AbstractFunction';


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

samples/NinetyNineBottlesOfBeer.pm  view on Meta::CPAN

package NinetyNineBottlesOfBeer;

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

use Moose;
with 'Gearman::JobScheduler::AbstractFunction';

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

# in microseconds
use constant SLEEP_BETWEEN_BOTTLES => 100000;

script/gjs_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 Gearman::JobScheduler;
use Gearman::JobScheduler::Admin;
use NinetyNineBottlesOfBeer;
use Addition;
use AdditionAlwaysFails;

script/gjs_worker.pl  view on Meta::CPAN


or:

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

=cut

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

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

use Gearman::JobScheduler;
use Gearman::JobScheduler::Configuration;
use Gearman::JobScheduler::Worker;

use Log::Log4perl qw(:easy);



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