summaryrefslogtreecommitdiffstats
path: root/Bugzilla/JobQueue/Worker.pm
diff options
context:
space:
mode:
authorDylan William Hardison <dylan@hardison.net>2018-03-13 15:37:03 +0100
committerGitHub <noreply@github.com>2018-03-13 15:37:03 +0100
commit6b8fa6c161e88a9054cdcef49aa76aa857ed9a72 (patch)
treefd5e28edc46ae33ef07733357a011aa29e6ace75 /Bugzilla/JobQueue/Worker.pm
parent294b3090c1eac02ed1d561ddb797814bd3537bfb (diff)
downloadbugzilla-6b8fa6c161e88a9054cdcef49aa76aa857ed9a72.tar.gz
bugzilla-6b8fa6c161e88a9054cdcef49aa76aa857ed9a72.tar.xz
Bug 1441181 - Step 4 - Re-implement subprocess code with IO::Async
Diffstat (limited to 'Bugzilla/JobQueue/Worker.pm')
-rw-r--r--Bugzilla/JobQueue/Worker.pm30
1 files changed, 30 insertions, 0 deletions
diff --git a/Bugzilla/JobQueue/Worker.pm b/Bugzilla/JobQueue/Worker.pm
new file mode 100644
index 000000000..db8ebe35e
--- /dev/null
+++ b/Bugzilla/JobQueue/Worker.pm
@@ -0,0 +1,30 @@
+# 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.
+
+package Bugzilla::JobQueue::Worker;
+use 5.10.1;
+use strict;
+use warnings;
+
+use Bugzilla::Logging;
+use Module::Runtime qw(require_module);
+
+sub run {
+ my ( $class, $fn ) = @_;
+ DEBUG("Starting up for $fn");
+ my $jq = Bugzilla->job_queue();
+
+ DEBUG('Loading jobqueue modules');
+ foreach my $module ( values %{ Bugzilla::JobQueue->job_map() } ) {
+ DEBUG("JobQueue can do $module");
+ require_module($module);
+ $jq->can_do($module);
+ }
+ $jq->$fn;
+}
+
+1;