Commit 2a5c9e0c authored by Gervase Markham's avatar Gervase Markham Committed by Gervase Markham

Allow jobqueue.pl to run once and then exit. r=mkanat.

parent 73cdd3ef
...@@ -196,16 +196,34 @@ sub gd_setup_signals { ...@@ -196,16 +196,34 @@ sub gd_setup_signals {
$SIG{TERM} = sub { $self->gd_quit_event(); } $SIG{TERM} = sub { $self->gd_quit_event(); }
} }
sub gd_other_cmd {
my ($self) = shift;
if ($ARGV[0] eq "once") {
$self->_do_work("work_once");
exit(0);
}
$self->SUPER::gd_other_cmd();
}
sub gd_run { sub gd_run {
my $self = shift; my $self = shift;
$self->_do_work("work");
}
sub _do_work {
my ($self, $fn) = @_;
my $jq = Bugzilla->job_queue(); my $jq = Bugzilla->job_queue();
$jq->set_verbose($self->{debug}); $jq->set_verbose($self->{debug});
foreach my $module (values %{ Bugzilla::JobQueue->job_map() }) { foreach my $module (values %{ Bugzilla::JobQueue->job_map() }) {
eval "use $module"; eval "use $module";
$jq->can_do($module); $jq->can_do($module);
} }
$jq->work;
$jq->$fn;
} }
1; 1;
......
...@@ -52,6 +52,8 @@ jobqueue.pl - Runs jobs in the background for Bugzilla. ...@@ -52,6 +52,8 @@ jobqueue.pl - Runs jobs in the background for Bugzilla.
stop Stops a running jobqueue daemon stop Stops a running jobqueue daemon
restart Stops a running jobqueue if one is running, and then restart Stops a running jobqueue if one is running, and then
starts a new one. starts a new one.
once Checks the job queue once, executes the first item found (if
any) and then exits
check Report the current status of the daemon. check Report the current status of the daemon.
install On some *nix systems, this automatically installs and install On some *nix systems, this automatically installs and
configures jobqueue.pl as a system service so that it will configures jobqueue.pl as a system service so that it will
......
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