use fake row object when running job
This commit is contained in:
@@ -17,14 +17,20 @@ sub worker_body {
|
||||
while (1) {
|
||||
my $jobs = $self->do('take_jobs', $self->wid, 'Interactive');
|
||||
|
||||
foreach my $job (@$jobs) {
|
||||
my $target = 'set_'. $job->{action};
|
||||
foreach my $candidate (@$jobs) {
|
||||
# create a row object so we can use column accessors
|
||||
# use the local db schema in case it is accidentally 'stored'
|
||||
# (will throw an exception)
|
||||
my $job = schema('daemon')->resultset('Admin')
|
||||
->new_result($candidate);
|
||||
|
||||
my $target = 'set_'. $job->action;
|
||||
next unless $self->can($target);
|
||||
|
||||
# do job
|
||||
my ($status, $log);
|
||||
try {
|
||||
$job->{started} = scalar localtime;
|
||||
$job->started(scalar localtime);
|
||||
($status, $log) = $self->$target($job);
|
||||
}
|
||||
catch {
|
||||
@@ -45,11 +51,11 @@ sub close_job {
|
||||
|
||||
try {
|
||||
schema('netdisco')->resultset('Admin')
|
||||
->find($job->{job})
|
||||
->find($job->job)
|
||||
->update({
|
||||
status => $status,
|
||||
log => $log,
|
||||
started => $job->{started},
|
||||
started => $job->started,
|
||||
finished => \'now()',
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user