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