Archived
1
0
Fork 0

Use multiple Gearman servers

This commit is contained in:
Mercier Pierre-Olivier 2013-12-01 01:12:02 +01:00
parent 16f3dbfecb
commit 415b5c81fd
5 changed files with 20 additions and 5 deletions

View file

@ -22,6 +22,18 @@ our $nb_cpus = 0;
$nb_cpus = grep {/^processor\s/} <$cpuinfo>; $nb_cpus = grep {/^processor\s/} <$cpuinfo>;
close $cpuinfo; close $cpuinfo;
my @servers = ("gearmand-srv:4730");
sub add_server(@)
{
push @servers, @_;
}
sub set_servers(@)
{
@servers = @_;
}
sub check_load ($) sub check_load ($)
{ {
my $priority = shift; my $priority = shift;
@ -94,7 +106,7 @@ sub register_no_parse ($$;$)
my $worker = Gearman::Worker->new; my $worker = Gearman::Worker->new;
$worker->job_servers('gearmand:4730'); $worker->job_servers( @servers );
$worker->register_function($funcname => sub $worker->register_function($funcname => sub
{ {
my $ret; my $ret;
@ -127,7 +139,7 @@ sub register ($$;$$)
my $worker = Gearman::Worker->new; my $worker = Gearman::Worker->new;
$worker->job_servers('gearmand:4730'); $worker->job_servers( @servers );
$worker->register_function($funcname => sub { return do_work($subref, $given_arg, $priority, @_); }); $worker->register_function($funcname => sub { return do_work($subref, $given_arg, $priority, @_); });
# Disable exit on warning or error # Disable exit on warning or error
@ -196,7 +208,7 @@ sub launch ($$;$$)
my $funcname = shift; my $funcname = shift;
my $client = Gearman::Client->new; my $client = Gearman::Client->new;
$client->job_servers('gearmand:4730'); $client->job_servers( @servers );
log DEBUG, "Launching $funcname..."; log DEBUG, "Launching $funcname...";
@ -219,7 +231,7 @@ sub paralaunch ($$;$)
my $xml = build_task_xml(shift, shift); my $xml = build_task_xml(shift, shift);
my $client = Gearman::Client->new; my $client = Gearman::Client->new;
$client->job_servers('gearmand:4730'); $client->job_servers( @servers );
my $taskset = $client->new_task_set; my $taskset = $client->new_task_set;
for my $task (@{ $funcsname }) for my $task (@{ $funcsname })

View file

@ -196,4 +196,5 @@ sub process_master
log INFO, "Starting guantanamo.pl as master process"; log INFO, "Starting guantanamo.pl as master process";
Process::add_server("gearman:4730");
Process::register("guantanamo", \&process_master); Process::register("guantanamo", \&process_master);

View file

@ -150,7 +150,7 @@ sub grades_generate
log DEBUG, "Computed grades: ".$grading->compute($login); log DEBUG, "Computed grades: ".$grading->compute($login);
open my $xmlgrade, ">", "$basedir/$year/$project_id/grades/$login.xml" or croak "grades/$login.xml"; open my $xmlgrade, ">", "$basedir/$year/$project_id/grades/$login.xml" or croak "grades/$login.xml: $!";
binmode $xmlgrade; binmode $xmlgrade;
print $xmlgrade $grading->computeXML($login); print $xmlgrade $grading->computeXML($login);
close $xmlgrade; close $xmlgrade;

View file

@ -97,4 +97,5 @@ sub process
return $grade->toString; return $grade->toString;
} }
Process::add_server("gearman:4730");
Process::register_no_parse("gen_grading", \&process); Process::register_no_parse("gen_grading", \&process);

View file

@ -105,4 +105,5 @@ sub process
return $out; return $out;
} }
Process::add_server("gearman:4730");
Process::register_no_parse("get_csv", \&process); Process::register_no_parse("get_csv", \&process);