get rid of horrid OO jobqueue interface
This commit is contained in:
@@ -1,19 +0,0 @@
|
||||
package App::Netdisco::Daemon::JobQueue;
|
||||
|
||||
use Role::Tiny;
|
||||
use namespace::clean;
|
||||
|
||||
use Module::Load ();
|
||||
Module::Load::load_remote 'JobQueue' => 'App::Netdisco::JobQueue' => ':all';
|
||||
|
||||
# central queue
|
||||
sub jq_getsome { shift and JobQueue::jq_getsome(@_) }
|
||||
sub jq_locked { shift and JobQueue::jq_locked(@_) }
|
||||
sub jq_queued { shift and JobQueue::jq_queued(@_) }
|
||||
sub jq_take { shift and JobQueue::jq_take(@_) }
|
||||
sub jq_lock { shift and JobQueue::jq_lock(@_) }
|
||||
sub jq_defer { shift and JobQueue::jq_defer(@_) }
|
||||
sub jq_complete { shift and JobQueue::jq_complete(@_) }
|
||||
sub jq_insert { shift and JobQueue::jq_insert(@_) }
|
||||
|
||||
1;
|
||||
@@ -6,7 +6,7 @@ use Try::Tiny;
|
||||
use Role::Tiny;
|
||||
use namespace::clean;
|
||||
|
||||
with 'App::Netdisco::Daemon::JobQueue';
|
||||
use App::Netdisco::JobQueue qw/jq_take jq_defer jq_complete/;
|
||||
|
||||
sub worker_body {
|
||||
my $self = shift;
|
||||
@@ -16,7 +16,7 @@ sub worker_body {
|
||||
my $type = $self->worker_type;
|
||||
|
||||
while (1) {
|
||||
my $jobs = $self->jq_take($self->wid, $type);
|
||||
my $jobs = jq_take($self->wid, $type);
|
||||
|
||||
foreach my $job (@$jobs) {
|
||||
my $target = $self->munge_action($job->action);
|
||||
@@ -50,11 +50,11 @@ sub close_job {
|
||||
|
||||
try {
|
||||
if ($job->status eq 'defer') {
|
||||
$self->jq_defer($job);
|
||||
jq_defer($job);
|
||||
}
|
||||
else {
|
||||
$job->finished($now);
|
||||
$self->jq_complete($job);
|
||||
jq_complete($job);
|
||||
}
|
||||
}
|
||||
catch { $self->sendto('stderr', "error closing job: $_\n") };
|
||||
|
||||
@@ -6,7 +6,7 @@ use Role::Tiny;
|
||||
use namespace::clean;
|
||||
|
||||
use List::Util 'sum';
|
||||
with 'App::Netdisco::Daemon::JobQueue';
|
||||
use App::Netdisco::JobQueue qw/jq_locked jq_getsome jq_lock/;
|
||||
|
||||
sub worker_begin {
|
||||
my $self = shift;
|
||||
@@ -19,7 +19,7 @@ sub worker_begin {
|
||||
|
||||
# requeue jobs locally
|
||||
debug "mgr ($wid): searching for jobs booked to this processing node";
|
||||
my @jobs = $self->jq_locked;
|
||||
my @jobs = jq_locked;
|
||||
|
||||
if (scalar @jobs) {
|
||||
info sprintf "mgr (%s): found %s jobs booked to this processing node", $wid, scalar @jobs;
|
||||
@@ -42,7 +42,7 @@ sub worker_body {
|
||||
|
||||
# get some pending jobs
|
||||
# TODO also check for stale jobs in Netdisco DB
|
||||
foreach my $job ( $self->jq_getsome($num_slots) ) {
|
||||
foreach my $job ( jq_getsome($num_slots) ) {
|
||||
|
||||
# check for available local capacity
|
||||
my $job_type = setting('job_types')->{$job->action};
|
||||
@@ -51,7 +51,7 @@ sub worker_body {
|
||||
$wid, $job->id, $job->action;
|
||||
|
||||
# mark job as running
|
||||
next unless $self->jq_lock($job);
|
||||
next unless jq_lock($job);
|
||||
info sprintf "mgr (%s): job %s booked out for this processing node",
|
||||
$wid, $job->id;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ use Algorithm::Cron;
|
||||
use Role::Tiny;
|
||||
use namespace::clean;
|
||||
|
||||
with 'App::Netdisco::Daemon::JobQueue';
|
||||
use App::Netdisco::JobQueue qw/jq_insert/;
|
||||
|
||||
sub worker_begin {
|
||||
my $self = shift;
|
||||
@@ -53,7 +53,7 @@ sub worker_body {
|
||||
|
||||
# queue it!
|
||||
info "sched ($wid): queueing $action job";
|
||||
$self->jq_insert({
|
||||
jq_insert({
|
||||
action => $action,
|
||||
device => $sched->{device},
|
||||
extra => $sched->{extra},
|
||||
|
||||
Reference in New Issue
Block a user