diff options
Diffstat (limited to 'jobqueue-worker.pl')
-rw-r--r-- | jobqueue-worker.pl | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/jobqueue-worker.pl b/jobqueue-worker.pl new file mode 100644 index 000000000..b26aacdba --- /dev/null +++ b/jobqueue-worker.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This Source Code Form is "Incompatible With Secondary Licenses", as +# defined by the Mozilla Public License, v. 2.0. + +use 5.10.1; +use strict; +use warnings; + +use File::Basename qw(basename dirname); +use File::Spec::Functions qw(catdir rel2abs); + +BEGIN { + require lib; + my $dir = rel2abs( dirname(__FILE__) ); + lib->import( $dir, catdir( $dir, 'lib' ), catdir( $dir, qw(local lib perl5) ) ); + chdir $dir or die "chdir $dir failed: $!"; + +} + +use Bugzilla::JobQueue::Worker; +use Bugzilla::JobQueue; +use Bugzilla; +use English qw(-no_match_vars $PROGRAM_NAME $OSNAME); +use Getopt::Long qw(:config gnu_getopt); +use if $OSNAME eq 'linux', 'Linux::Pdeathsig', 'set_pdeathsig'; + +BEGIN { Bugzilla->extensions } +my $name = basename(__FILE__); + +GetOptions( 'name=s' => \$name ); + +if ($name) { + ## no critic (Variables::RequireLocalizedPunctuationVars) + $PROGRAM_NAME = $name; + ## use critic +} + +if ($OSNAME eq 'linux') { + # get SIGTEMR (15) when parent exits. + set_pdeathsig(15); +} + +Bugzilla::JobQueue::Worker->run('work'); |