Use multiple Gearman servers
This commit is contained in:
parent
16f3dbfecb
commit
415b5c81fd
5 changed files with 20 additions and 5 deletions
|
@ -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 })
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Reference in a new issue