Allow jobqueue.pl to run once and then exit. r=mkanat.
git-svn-id: svn://10.0.0.236/trunk@261849 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -1 +1 @@
|
||||
7682
|
||||
7683
|
||||
@@ -196,16 +196,34 @@ sub gd_setup_signals {
|
||||
$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 {
|
||||
my $self = shift;
|
||||
|
||||
$self->_do_work("work");
|
||||
}
|
||||
|
||||
sub _do_work {
|
||||
my ($self, $fn) = @_;
|
||||
|
||||
my $jq = Bugzilla->job_queue();
|
||||
$jq->set_verbose($self->{debug});
|
||||
foreach my $module (values %{ Bugzilla::JobQueue->job_map() }) {
|
||||
eval "use $module";
|
||||
$jq->can_do($module);
|
||||
}
|
||||
$jq->work;
|
||||
|
||||
$jq->$fn;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
@@ -52,6 +52,8 @@ jobqueue.pl - Runs jobs in the background for Bugzilla.
|
||||
stop Stops a running jobqueue daemon
|
||||
restart Stops a running jobqueue if one is running, and then
|
||||
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.
|
||||
install On some *nix systems, this automatically installs and
|
||||
configures jobqueue.pl as a system service so that it will
|
||||
|
||||
Reference in New Issue
Block a user