Commit 0a3062af authored by Matt Tyson's avatar Matt Tyson Committed by Byron Jones

Bug 1067753: Allow the job queue to specify one or more types of jobs to run

r=mtyson,a=sgreen
parent 5a1a4b92
...@@ -80,6 +80,7 @@ sub gd_more_opt { ...@@ -80,6 +80,7 @@ sub gd_more_opt {
return ( return (
'pidfile=s' => \$self->{gd_args}{pidfile}, 'pidfile=s' => \$self->{gd_args}{pidfile},
'n=s' => \$self->{gd_args}{progname}, 'n=s' => \$self->{gd_args}{progname},
'j=s@' => \$self->{gd_args}{job_name},
); );
} }
...@@ -210,10 +211,12 @@ sub gd_run { ...@@ -210,10 +211,12 @@ sub gd_run {
sub _do_work { sub _do_work {
my ($self, $fn) = @_; my ($self, $fn) = @_;
my @job_name = @{ $self->{gd_args}{job_name} // [] };
my $jq = Bugzilla->job_queue(); my $jq = Bugzilla->job_queue();
$jq->set_verbose($self->{debug}); $jq->set_verbose($self->{debug});
$jq->set_pidfile($self->{gd_pidfile}); $jq->set_pidfile($self->{gd_pidfile});
foreach my $module (values %{ Bugzilla::JobQueue->job_map() }) { while (my ($key, $module) = each %{ Bugzilla::JobQueue->job_map() }) {
next if @job_name and ! grep { $_ eq $key } @job_name;
eval "use $module"; eval "use $module";
$jq->can_do($module); $jq->can_do($module);
} }
......
...@@ -33,13 +33,14 @@ jobqueue.pl - Runs jobs in the background for Bugzilla. ...@@ -33,13 +33,14 @@ jobqueue.pl - Runs jobs in the background for Bugzilla.
./jobqueue.pl [OPTIONS] COMMAND ./jobqueue.pl [OPTIONS] COMMAND
OPTIONS: OPTIONS:
-f Run in the foreground (don't detach) -f Run in the foreground (don't detach)
-d Output a lot of debugging information -d Output a lot of debugging information
-p file Specify the file where jobqueue.pl should store its current -p file Specify the file where jobqueue.pl should store its current
process id. Defaults to F<data/jobqueue.pl.pid>. process id. Defaults to F<data/jobqueue.pl.pid>.
-n name What should this process call itself in the system log? -n name What should this process call itself in the system log?
Defaults to the full path you used to invoke the script. Defaults to the full path you used to invoke the script.
-j job-name The name of jobs to process. Can be specified multiple times.
If not specified, all job types will be processed.
COMMANDS: COMMANDS:
start Starts a new jobqueue daemon if there isn't one running already start Starts a new jobqueue daemon if there isn't one running already
stop Stops a running jobqueue daemon stop Stops a running jobqueue daemon
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment