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>;
|
||||
close $cpuinfo;
|
||||
|
||||
my @servers = ("gearmand-srv:4730");
|
||||
|
||||
sub add_server(@)
|
||||
{
|
||||
push @servers, @_;
|
||||
}
|
||||
|
||||
sub set_servers(@)
|
||||
{
|
||||
@servers = @_;
|
||||
}
|
||||
|
||||
sub check_load ($)
|
||||
{
|
||||
my $priority = shift;
|
||||
|
@ -94,7 +106,7 @@ sub register_no_parse ($$;$)
|
|||
|
||||
my $worker = Gearman::Worker->new;
|
||||
|
||||
$worker->job_servers('gearmand:4730');
|
||||
$worker->job_servers( @servers );
|
||||
$worker->register_function($funcname => sub
|
||||
{
|
||||
my $ret;
|
||||
|
@ -127,7 +139,7 @@ sub register ($$;$$)
|
|||
|
||||
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, @_); });
|
||||
|
||||
# Disable exit on warning or error
|
||||
|
@ -196,7 +208,7 @@ sub launch ($$;$$)
|
|||
my $funcname = shift;
|
||||
|
||||
my $client = Gearman::Client->new;
|
||||
$client->job_servers('gearmand:4730');
|
||||
$client->job_servers( @servers );
|
||||
|
||||
log DEBUG, "Launching $funcname...";
|
||||
|
||||
|
@ -219,7 +231,7 @@ sub paralaunch ($$;$)
|
|||
my $xml = build_task_xml(shift, shift);
|
||||
|
||||
my $client = Gearman::Client->new;
|
||||
$client->job_servers('gearmand:4730');
|
||||
$client->job_servers( @servers );
|
||||
|
||||
my $taskset = $client->new_task_set;
|
||||
for my $task (@{ $funcsname })
|
||||
|
|
|
@ -196,4 +196,5 @@ sub process_master
|
|||
|
||||
log INFO, "Starting guantanamo.pl as master process";
|
||||
|
||||
Process::add_server("gearman:4730");
|
||||
Process::register("guantanamo", \&process_master);
|
||||
|
|
|
@ -150,7 +150,7 @@ sub grades_generate
|
|||
|
||||
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;
|
||||
print $xmlgrade $grading->computeXML($login);
|
||||
close $xmlgrade;
|
||||
|
|
|
@ -97,4 +97,5 @@ sub process
|
|||
return $grade->toString;
|
||||
}
|
||||
|
||||
Process::add_server("gearman:4730");
|
||||
Process::register_no_parse("gen_grading", \&process);
|
||||
|
|
|
@ -105,4 +105,5 @@ sub process
|
|||
return $out;
|
||||
}
|
||||
|
||||
Process::add_server("gearman:4730");
|
||||
Process::register_no_parse("get_csv", \&process);
|
||||
|
|
Reference in a new issue