port Scheduler to pluggable jobqueue
This commit is contained in:
21
Netdisco/lib/App/Netdisco/Daemon/JobQueue/PostgreSQL.pm
Normal file
21
Netdisco/lib/App/Netdisco/Daemon/JobQueue/PostgreSQL.pm
Normal file
@@ -0,0 +1,21 @@
|
||||
package App::Netdisco::Daemon::JobQueue::PostgreSQL;
|
||||
|
||||
use Dancer qw/:moose :syntax :script/;
|
||||
use Dancer::Plugin::DBIC 'schema';
|
||||
|
||||
use Role::Tiny;
|
||||
use namespace::clean;
|
||||
|
||||
sub jobqueue_insert {
|
||||
my ($self, $settings) = @_;
|
||||
|
||||
schema('netdisco')->resultset('Admin')->create({
|
||||
action => $settings->{action},
|
||||
device => $settings->{device},
|
||||
port => $settings->{port},
|
||||
subaction => $settings->{extra},
|
||||
status => 'queued',
|
||||
});
|
||||
}
|
||||
|
||||
true;
|
||||
@@ -1,7 +1,6 @@
|
||||
package App::Netdisco::Daemon::Worker::Scheduler;
|
||||
|
||||
use Dancer qw/:moose :syntax :script/;
|
||||
use Dancer::Plugin::DBIC 'schema';
|
||||
|
||||
use Algorithm::Cron;
|
||||
use Try::Tiny;
|
||||
@@ -9,6 +8,8 @@ use Try::Tiny;
|
||||
use Role::Tiny;
|
||||
use namespace::clean;
|
||||
|
||||
with 'App::Netdisco::Daemon::JobQueue::'. setting('job_queue');
|
||||
|
||||
sub worker_begin {
|
||||
my $self = shift;
|
||||
my $wid = $self->wid;
|
||||
@@ -55,11 +56,10 @@ sub worker_body {
|
||||
# queue it!
|
||||
try {
|
||||
info "sched ($wid): queueing $action job";
|
||||
schema('netdisco')->resultset('Admin')->create({
|
||||
$self->jobqueue_insert({
|
||||
action => $action,
|
||||
device => ($sched->{device} || undef),
|
||||
subaction => ($sched->{extra} || undef),
|
||||
status => 'queued',
|
||||
device => $sched->{device},
|
||||
extra => $sched->{extra},
|
||||
});
|
||||
}
|
||||
catch {
|
||||
|
||||
Reference in New Issue
Block a user