port Worker Common to pluggable jobqueue
This commit is contained in:
@@ -18,4 +18,12 @@ sub jobqueue_insert {
|
||||
});
|
||||
}
|
||||
|
||||
sub jobqueue_update {
|
||||
my ($self, $settings) = @_;
|
||||
|
||||
schema('netdisco')->resultset('Admin')
|
||||
->find(delete $settings->{id}, {for => 'update'})
|
||||
->update($settings);
|
||||
}
|
||||
|
||||
true;
|
||||
|
||||
@@ -7,7 +7,8 @@ use Try::Tiny;
|
||||
use Role::Tiny;
|
||||
use namespace::clean;
|
||||
|
||||
requires qw/worker_type worker_name munge_action/;
|
||||
with 'App::Netdisco::Daemon::JobQueue::'. setting('job_queue');
|
||||
requires qw/worker_type worker_name munge_action jobqueue_update/;
|
||||
|
||||
sub worker_body {
|
||||
my $self = shift;
|
||||
@@ -65,19 +66,19 @@ sub close_job {
|
||||
# lock db row and either defer or complete the job
|
||||
try {
|
||||
if ($status eq 'defer') {
|
||||
schema('netdisco')->resultset('Admin')
|
||||
->find($job->job, {for => 'update'})
|
||||
->update({ status => 'queued' });
|
||||
$self->jobqueue_update({
|
||||
id => $job->job,
|
||||
status => 'queued',
|
||||
});
|
||||
}
|
||||
else {
|
||||
schema('netdisco')->resultset('Admin')
|
||||
->find($job->job, {for => 'update'})
|
||||
->update({
|
||||
status => $status,
|
||||
log => $log,
|
||||
started => $job->started,
|
||||
finished => $now,
|
||||
});
|
||||
$self->jobqueue_update({
|
||||
id => $job->job,
|
||||
status => $status,
|
||||
log => $log,
|
||||
started => $job->started,
|
||||
finished => $now,
|
||||
});
|
||||
}
|
||||
|
||||
# remove job from local queue
|
||||
|
||||
@@ -9,6 +9,7 @@ use Role::Tiny;
|
||||
use namespace::clean;
|
||||
|
||||
with 'App::Netdisco::Daemon::JobQueue::'. setting('job_queue');
|
||||
requires 'jobqueue_insert';
|
||||
|
||||
sub worker_begin {
|
||||
my $self = shift;
|
||||
|
||||
Reference in New Issue
Block a user