@@ -, +, @@ --- misc/background_jobs_worker.pl | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) --- a/misc/background_jobs_worker.pl +++ a/misc/background_jobs_worker.pl @@ -75,6 +75,9 @@ try { }; if ( $conn ) { + # process outstanding jobs on startup + process_outstanding; + # FIXME cf note in Koha::BackgroundJob about $namespace my $namespace = C4::Context->config('memcached_namespace'); for my $queue (@queues) { @@ -100,11 +103,7 @@ while (1) { $conn->ack( { frame => $frame } ); # FIXME depending on success? } else { - my $jobs = Koha::BackgroundJobs->search({ status => 'new', queue => \@queues }); - while ( my $job = $jobs->next ) { - my $args = decode_json($job->data); - process_job( $job, { job_id => $job->id, %$args } ); - } + process_outstanding; sleep 10; } } @@ -124,3 +123,12 @@ sub process_job { $job->process( $args ); exit; } + +sub process_outstanding { + my $jobs = Koha::BackgroundJobs->search({ status => 'new', queue => \@queues }); + while ( my $job = $jobs->next ) { + my $args = decode_json($job->data); + process_job( $job, { job_id => $job->id, %$args } ); + } + return 1; +} --