AC-MrGamoo
view release on metacpan or search on metacpan
lib/AC/MrGamoo/API/Client.pm view on Meta::CPAN
sub new {
my $class = shift;
my $addr = shift;
my $port = shift;
my $info = shift;
my $req = shift;
my $data = shift;
debug("new client type: $req->{type} to $addr:$port");
my $send = AC::MrGamoo::Protocol->encode_request( $req, $data );
my $me = $class->SUPER::new( $addr, $port,
info => "client $req->{type} to $addr:$port; $info",
request => $send,
);
return $me;
}
sub start {
my $me = shift;
$me->set_callback('timeout', \&_timeout);
$me->set_callback('read', \&_read);
$me->set_callback('shutdown', \&_shutdown);
$me->SUPER::start();
$me->timeout_rel($TIMEOUT);
$me->write( $me->{request} );
return $me;
}
sub _timeout {
my $me = shift;
$me->shut();
}
lib/AC/MrGamoo/Job/Task.pm view on Meta::CPAN
}
sub failed {
my $me = shift;
my $job = shift;
my $why = shift;
debug("task failed: $why $me->{status_time}");
return if $job->something_failed();
$me->SUPER::failed($job, 'task');
$me->{info}->failed( $me, $job );
if( $why eq 'timeout' ){
$me->abort($job)
}else{
# $job->_try_to_do_something();
}
}
sub finished {
my $me = shift;
my $job = shift;
my $why = shift;
debug('task finish');
$me->SUPER::finished($job, 'task');
$me->{info}->finished( $me, $job );
$job->_try_to_do_something();
}
sub abort {
my $me = shift;
my $job = shift;
debug("aborting task $me->{id}");
lib/AC/MrGamoo/Job/Xfer.pm view on Meta::CPAN
}
sub failed {
my $me = shift;
my $job = shift;
my $why = shift;
debug("xfer failed: $why");
return if $job->something_failed();
$me->SUPER::failed($job, 'xfer');
$me->{info}->failed( $me, $job );
# $job->_try_to_do_something() unless $why eq 'timeout';
}
sub finished {
my $me = shift;
my $job = shift;
debug('xfer finish');
my $server = $me->{server};
my $file = $me->{info}{dstname} || $me->{info}{filename};
$me->SUPER::finished($job, 'xfer');
$me->{info}->finished( $me, $job );
# add to server_info.has_files
# add to file_info, tmp_file
$job->{server_info}{$server}{has_files}{$file} = 1;
push @{ $job->{file_info}{$file}{location} }, $server;
push @{$job->{tmp_file}}, { filename => $file, server => $server };
my $limit = $job->{plan}{nserver} * 1.5;
lib/AC/MrGamoo/Kibitz/Client.pm view on Meta::CPAN
my $HDRSIZE = AC::MrGamoo::Protocol->header_size();
my $TIMEOUT = 3;
my $msgid = $$;
sub new {
my $class = shift;
# addr, port, ...
debug('starting kibitz status client');
my $me = $class->SUPER::new( @_ );
return unless $me;
$me->set_callback('timeout', \&timeout);
$me->set_callback('read', \&read);
$me->set_callback('shutdown', \&shutdown);
$me->start();
# build request
my $req = AC::MrGamoo::Protocol->encode_request( {
lib/AC/MrGamoo/Server.pm view on Meta::CPAN
sub new {
my $class = shift;
my $fd = shift;
my $ip = shift;
unless( $AC::MrGamoo::CONF->check_acl( $ip ) ){
verbose("rejecting connection from $ip");
return;
}
my $me = $class->SUPER::new( info => 'tcp mrgamoo server', from_ip => $ip );
$me->start($fd);
$me->timeout_rel($TIMEOUT);
$me->set_callback('read', \&read);
$me->set_callback('timeout', \&timeout);
}
sub timeout {
my $me = shift;
lib/AC/MrGamoo/Xfer.pm view on Meta::CPAN
return $REGISTRY{$req->{copyid}};
}
$dstname = conf_value('basedir') . '/' . $dstname;
my $tmpfile = $dstname . ".$$";
# mkpath
my($dir) = $dstname =~ m|^(.+)/[^/]+$|;
eval{ mkpath($dir, undef, 0755) };
my $me = $class->SUPER::new( \&_run_child,
[ $srcname, $dstname, $tmpfile, $loc, $req ],
info => "xfer $loc:$srcname",
request => $req,
rbufsize => 65536,
);
return unless $me;
$REGISTRY{$req->{copyid}} = $me;
debug("xfer requesting $loc:$srcname => $dstname, id $req->{copyid}");
lib/AC/MrGamoo/Xfer.pm view on Meta::CPAN
sub _start {
my $me = shift;
debug("start xfer $me->{request}{copyid}");
$me->timeout_rel($TIMEOUT);
$me->set_callback('timeout', \&timeout);
$me->set_callback('shutdown', \&shutdown);
$me->SUPER::start();
}
sub _run_child {
my $srcname = shift; # on remote system
my $dstname = shift; # on local system
my $tmpfile = shift;
my $loc = shift;
my $req = shift;
( run in 0.760 second using v1.01-cache-2.11-cpan-49f99fa48dc )