Bug 34990: Add persistent header when sending msg to RabbitMQ
Test plan: NOTE: It is very hard to add a Koha unit test for adding this single header when communicating to RabbitMQ via Stomp plugin. When we would mock the send, we are only testing if perl can pass a hashref to a subroutine ;) Do NOT yet apply this patch. Make sure that RabbitMQ runs. Stop the koha-worker for long_tasks: koha-worker --stop --queue long_tasks myclone Stage a MARC file. Check queues with rabbitmqctl list_queues. Look for: koha_myclone-long_tasks 1 (at least 1) Stop rabbitmq (something like /etc/init.d/rabbitmq-server stop) Start rabbitmq (/etc/init.d/rabbitmq-server start) Check queue again with with rabbitmqctl list_queues. Look for: koha_myclone-long_tasks 0 Your messages have been gone. Now apply this patch. Reiterate the former steps. But note that you will still see a non-empty queue in the last step: koha_myclone-long_tasks 1 (at least 1) Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> (cherry picked from commit5797f5095e) Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com> (cherry picked from commit8c0ee5ce0d) Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
This commit is contained in:
parent
48f32b355f
commit
f76155250d
|
|
@ -138,7 +138,8 @@ sub enqueue {
|
|||
# Picking a random id (memcached_namespace) from the config
|
||||
my $namespace = C4::Context->config('memcached_namespace');
|
||||
my $encoded_args = Encode::encode_utf8( $json_args ); # FIXME We should better leave this to Net::Stomp?
|
||||
$conn->send_with_receipt( { destination => sprintf("/queue/%s-%s", $namespace, $job_queue), body => $encoded_args } )
|
||||
my $destination = sprintf( "/queue/%s-%s", $namespace, $job_queue );
|
||||
$conn->send_with_receipt( { destination => $destination, body => $encoded_args, persistent => 'true' } )
|
||||
or Koha::Exceptions::Exception->throw('Job has not been enqueued');
|
||||
} catch {
|
||||
$self->status('failed')->store;
|
||||
|
|
|
|||
Loading…
Reference in New Issue