Gearman

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

      "directory" : [
         "t",
         "inc"
      ]
   },
   "prereqs" : {
      "build" : {
         "requires" : {
            "File::Which" : "0",
            "IO::Socket::IP" : "0",
            "IO::Socket::SSL" : "0",
            "Perl::OSType" : "0",
            "Proc::Guard" : "0.07",
            "Storable" : "0",
            "Test::Exception" : "0",
            "Test::More" : "0",
            "Test::TCP" : "2.17",
            "Test::Timer" : "0",
            "version" : "0.77"
         }
      },
      "configure" : {
         "requires" : {
            "ExtUtils::MakeMaker" : "0"
         }
      },
      "runtime" : {
         "requires" : {
            "Carp" : "0",
            "IO::Select" : "0",
            "IO::Socket::IP" : "0",
            "IO::Socket::SSL" : "0",
            "List::MoreUtils" : "0",
            "POSIX" : "0",
            "Scalar::Util" : "0",
            "Socket" : "0",
            "Storable" : "0",
            "String::CRC32" : "0",
            "Time::HiRes" : "0",
            "fields" : "0",
            "perl" : "5.008001",
            "version" : "0.77"

META.yml  view on Meta::CPAN

---
abstract: 'Client and worker libraries for gearman job dispatch dispatch. Server is in separate package.'
author:
  - 'Brad Fitzpatrick <brad@danga.com>'
build_requires:
  File::Which: '0'
  IO::Socket::IP: '0'
  IO::Socket::SSL: '0'
  Perl::OSType: '0'
  Proc::Guard: '0.07'
  Storable: '0'
  Test::Exception: '0'
  Test::More: '0'
  Test::TCP: '2.17'
  Test::Timer: '0'
  version: '0.77'
configure_requires:
  ExtUtils::MakeMaker: '0'

META.yml  view on Meta::CPAN

  version: '1.4'
name: Gearman
no_index:
  directory:
    - t
    - inc
requires:
  Carp: '0'
  IO::Select: '0'
  IO::Socket::IP: '0'
  IO::Socket::SSL: '0'
  List::MoreUtils: '0'
  POSIX: '0'
  Scalar::Util: '0'
  Socket: '0'
  Storable: '0'
  String::CRC32: '0'
  Time::HiRes: '0'
  fields: '0'
  perl: '5.008001'
  version: '0.77'

Makefile.PL  view on Meta::CPAN

    DISTNAME => "Gearman",
    AUTHOR   => 'Brad Fitzpatrick <brad@danga.com>',
    ABSTRACT =>
        "Client and worker libraries for gearman job dispatch dispatch. Server is in separate package.",
    VERSION_FROM     => "lib/Gearman/Client.pm",
    LICENSE          => 'perl',
    MIN_PERL_VERSION => '5.008001',
    BUILD_REQUIRES   => {
        "File::Which"       => 0,
        "IO::Socket::IP"    => 0,
        "IO::Socket::SSL"   => 0,
        "Perl::OSType"      => 0,
        "Proc::Guard"       => "0.07",
        "Storable"          => 0,
        "Test::Exception"   => 0,
        "Test::More"        => 0,
        "Test::TCP"         => "2.17",
        "Test::Timer"       => 0,
        "version"           => "0.77",
    },
    PREREQ_PM => {
        "Carp"            => 0,
        "IO::Select"      => 0,
        "IO::Socket::IP"  => 0,
        "IO::Socket::SSL" => 0,
        "List::MoreUtils" => 0,
        "POSIX"           => 0,
        "Scalar::Util"    => 0,
        "Socket"          => 0,
        "Storable"        => 0,
        "String::CRC32"   => 0,
        "Time::HiRes"     => 0,    # Usually core now
        "fields"          => 0,
        "version"         => "0.77",
    },

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

Gearman::Objects - a parent class for L<Gearman::Client> and L<Gearman::Worker>

=head1 METHODS

=cut

use constant DEFAULT_PORT => 4730;

use Carp            ();
use IO::Socket::IP  ();
use IO::Socket::SSL ();
use Socket          ();
use List::MoreUtils qw/
    first_index
    /;

use fields qw/
    debug
    job_servers
    js_count
    prefix

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

sub prefix_separator {
    my ($self) = shift;
    my $r = $self->_property("prefix_separator", scalar(@_) ? $_[0] : ());
    return $r ? $r : $self->_property("prefix_separator", "\t");
}

=head2 socket($js, [$timeout])

depends on C<use_ssl>
prepare L<IO::Socket::IP>
or L<IO::Socket::SSL>

=over

=item

C<$host_port> peer address

=item

C<$timeout> default: 1

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

    }

    my %opts = (
        PeerPort => $js->{port},
        PeerHost => $js->{host},
        Timeout  => $t || 1
    );

    my $sc = "IO::Socket::IP";
    if ($js->{use_ssl}) {
        $sc = "IO::Socket::SSL";
        for (qw/ ca_file cert_file key_file /) {
            $js->{$_} || next;
            $opts{ join('_', "SSL", $_) } = $js->{$_};
        }
    } ## end if ($js->{use_ssl})

    $js->{socket_cb} && $js->{socket_cb}->(\%opts);

    my $s = $sc->new(%opts);
    unless ($s) {
        $self->debug() && Carp::carp("connection failed error='$@'",
            $js->{use_ssl}
            ? ", ssl_error='$IO::Socket::SSL::SSL_ERROR'"
            : "");
    } ## end unless ($s)

    return $s;
} ## end sub socket

=head2 sock_nodelay($sock)

set TCP_NODELAY on $sock, die on failure

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

            # We're not in an accessible place here, so if all job servers fail we must die to prevent hanging.
            Carp::croak("Job server failure: $@");
            } ## end do
    };

    my $io = IO::Select->new($self->{default_sock},
        values %{ $self->{loaned_sock} });

    my $pending_sock;
    foreach ($io->handles) {
        (ref($_) eq "IO::Socket::SSL" && $_->pending()) || next;

        $pending_sock = $_;
        last;
    }

    if ($pending_sock) {
        return $cb->($pending_sock);
    }

    while (!$self->{cancelled} && keys %{ $self->{waiting} }) {

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

        return undef;
    };

    $sock->blocking(0);

    my $is = IO::Select->new($sock);

    my $readlen   = 12;
    my $offset    = 0;
    my $buf       = '';
    my $using_ssl = $sock->isa("IO::Socket::SSL");

    my ($magic, $type, $len);

    warn " Starting up event loop\n" if DEBUG;
    while (1) {
        if ($using_ssl && $sock->pending()) {
            warn "  We have @{[ $sock->pending() ]}  bytes...\n" if DEBUG;
        }
        else {
            my $time_remaining = undef;

t/01-object.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use Test::Exception;
use IO::Socket::SSL ();

my $mn = "Gearman::Objects";
use_ok($mn);

can_ok(
    $mn, qw/
        _js
        _js_str
        _property
        _sock_cache

t/18-ssl.t  view on Meta::CPAN

    freeze
    thaw
    /;
use Test::More;
use Test::Timer;

use lib '.';
use t::Worker qw/ new_worker /;

BEGIN {
    use IO::Socket::SSL ();
    if (defined($ENV{SSL_DEBUG})) {
        $IO::Socket::SSL::DEBUG = $ENV{SSL_DEBUG};
    }
} ## end BEGIN

{
    my @env = qw/
        AUTHOR_TESTING
        SSL_GEARMAND_HOST
        SSL_GEARMAND_PORT
        SSL_CERT_FILE
        SSL_KEY_FILE



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