Bug 32305: Worker should ignore wrong status or queue in MQ mode
MQ mode: The worker has seen that MQ is running and consumes messages
instead of polling db only.
Test plan:
Stop worker for long tasks.
Make sure that Rabbit MQ runs.
Stage a file. (This adds a long task.)
Goto staff view of jobs and cancel this job.
Check if job is still in MQ with rabbitmqctl list_queues.
Now start worker for long tasks.
Check if job is gone in MQ with rabbitmqctl list_queues.
And check logfile for the adjusted warning like:
[WARN] Job 5 not found, or has wrong status/queue main:: /usr/share/koha/misc/workers/background_jobs_worker.pl (134)
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
[EDIT] Removed queue from query at MQ side. Discussed on IRC.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit f1edd8fe77
)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
8a945f3e81
commit
20b0687b74
1 changed files with 4 additions and 3 deletions
|
@ -127,10 +127,11 @@ while (1) {
|
|||
|
||||
# FIXME This means we need to have create the DB entry before
|
||||
# It could work in a first step, but then we will want to handle job that will be created from the message received
|
||||
my $job = Koha::BackgroundJobs->find($args->{job_id});
|
||||
my $job = Koha::BackgroundJobs->search( { id => $args->{job_id}, status => 'new' } )->next;
|
||||
|
||||
unless ( $job ) {
|
||||
Koha::Logger->get({ interface => 'worker' })->warn(sprintf "No job found for id=%s", $args->{job_id});
|
||||
unless( $job ) {
|
||||
Koha::Logger->get( { interface => 'worker' } )
|
||||
->warn( sprintf "Job %s not found, or has wrong status", $args->{job_id} );
|
||||
next;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue