Gearman
view release on metacpan or search on metacpan
"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"
---
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'
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
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 )