diff options
author | Matt Tyson <mtyson@redhat.com> | 2014-10-27 06:48:45 +0100 |
---|---|---|
committer | Byron Jones <glob@mozilla.com> | 2014-10-27 06:48:45 +0100 |
commit | 0a3062afeb7d129553f626408da7e00bfda25cc2 (patch) | |
tree | dfe1eb95278da9452722201bf7683490f5a02d84 | |
parent | 5a1a4b92a3381d8bcc7e42808961420c27dd0c38 (diff) | |
download | bugzilla-0a3062afeb7d129553f626408da7e00bfda25cc2.tar.gz bugzilla-0a3062afeb7d129553f626408da7e00bfda25cc2.tar.xz |
Bug 1067753: Allow the job queue to specify one or more types of jobs to run
r=mtyson,a=sgreen
-rw-r--r-- | Bugzilla/JobQueue/Runner.pm | 5 | ||||
-rwxr-xr-x | jobqueue.pl | 15 |
2 files changed, 12 insertions, 8 deletions
diff --git a/Bugzilla/JobQueue/Runner.pm b/Bugzilla/JobQueue/Runner.pm index 104a97b0b..2367f8d77 100644 --- a/Bugzilla/JobQueue/Runner.pm +++ b/Bugzilla/JobQueue/Runner.pm @@ -80,6 +80,7 @@ sub gd_more_opt { return ( 'pidfile=s' => \$self->{gd_args}{pidfile}, 'n=s' => \$self->{gd_args}{progname}, + 'j=s@' => \$self->{gd_args}{job_name}, ); } @@ -210,10 +211,12 @@ sub gd_run { sub _do_work { my ($self, $fn) = @_; + my @job_name = @{ $self->{gd_args}{job_name} // [] }; my $jq = Bugzilla->job_queue(); $jq->set_verbose($self->{debug}); $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"; $jq->can_do($module); } diff --git a/jobqueue.pl b/jobqueue.pl index f6722467c..858180334 100755 --- a/jobqueue.pl +++ b/jobqueue.pl @@ -33,13 +33,14 @@ jobqueue.pl - Runs jobs in the background for Bugzilla. ./jobqueue.pl [OPTIONS] COMMAND OPTIONS: - -f Run in the foreground (don't detach) - -d Output a lot of debugging information - -p file Specify the file where jobqueue.pl should store its current - process id. Defaults to F<data/jobqueue.pl.pid>. - -n name What should this process call itself in the system log? - Defaults to the full path you used to invoke the script. - + -f Run in the foreground (don't detach) + -d Output a lot of debugging information + -p file Specify the file where jobqueue.pl should store its current + process id. Defaults to F<data/jobqueue.pl.pid>. + -n name What should this process call itself in the system log? + 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: start Starts a new jobqueue daemon if there isn't one running already stop Stops a running jobqueue daemon |