Lines 51-66
while (1) {
Link Here
|
51 |
# FIXME This means we need to have create the DB entry before |
51 |
# FIXME This means we need to have create the DB entry before |
52 |
# It could work in a first step, but then we will want to handle job that will be created from the message received |
52 |
# It could work in a first step, but then we will want to handle job that will be created from the message received |
53 |
my $job = Koha::BackgroundJobs->find($args->{job_id}); |
53 |
my $job = Koha::BackgroundJobs->find($args->{job_id}); |
54 |
my $success = $job->process( $args ); |
|
|
55 |
|
54 |
|
56 |
$conn->ack( { frame => $frame } ); # FIXME depending on $success? |
55 |
process_job( $job, $args ); |
|
|
56 |
$conn->ack( { frame => $frame } ); # FIXME depending on success? |
57 |
|
57 |
} else { |
58 |
} else { |
58 |
my $jobs = Koha::BackgroundJobs->search({ status => 'new' }); |
59 |
my $jobs = Koha::BackgroundJobs->search({ status => 'new' }); |
59 |
while ( my $job = $jobs->next ) { |
60 |
while ( my $job = $jobs->next ) { |
60 |
my $args = decode_json($job->data); |
61 |
my $args = decode_json($job->data); |
61 |
$job->process( { job_id => $job->id, %$args } ); |
62 |
process_job( $job, { job_id => $job->id, %$args } ); |
62 |
} |
63 |
} |
63 |
sleep 10; |
64 |
sleep 10; |
64 |
} |
65 |
} |
65 |
} |
66 |
} |
66 |
$conn->disconnect; |
67 |
$conn->disconnect; |
67 |
- |
68 |
|
|
|
69 |
sub process_job { |
70 |
my ( $job, $args ) = @_; |
71 |
|
72 |
my $pid; |
73 |
if ( $pid = fork ) { |
74 |
wait; |
75 |
return; |
76 |
} |
77 |
|
78 |
die "fork failed!" unless defined $pid; |
79 |
|
80 |
$job->process( $args ); |
81 |
exit; |
82 |
} |