Bug 32481: Limit prefetch size for background jobs worker
This patch adds a prefetch size of 1 to the background jobs worker, so that it fetches 1 message at a time. Without this change, the RabbitMQ connection timeout when too many messages for slow tasks are fetched at the same time. To test: 0. Apply patch 1. Run background worker 2. Rapidly enqueue multiple jobs that in total will take longer than 30 minutes to process Bug 32481: Use correct prefetch syntax for RabbitMQ According to https://www.rabbitmq.com/stomp.html the header to use for managing the prefetch is "prefetch-count". You can verify the number of delivered and unacknowledged messages on a channel on a connection by running "rabbitmqctl list_channels" on the RabbitMQ host. This will tell you how many messages have been delivered and are awaiting acknowledgement Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
parent
26cce9e1c4
commit
cd89c38321
1 changed files with 5 additions and 1 deletions
|
@ -78,7 +78,11 @@ if ( $conn ) {
|
|||
# FIXME cf note in Koha::BackgroundJob about $namespace
|
||||
my $namespace = C4::Context->config('memcached_namespace');
|
||||
for my $queue (@queues) {
|
||||
$conn->subscribe({ destination => sprintf("/queue/%s-%s", $namespace, $queue), ack => 'client' });
|
||||
$conn->subscribe({
|
||||
destination => sprintf("/queue/%s-%s", $namespace, $queue),
|
||||
ack => 'client',
|
||||
'prefetch-count' => 1,
|
||||
});
|
||||
}
|
||||
}
|
||||
while (1) {
|
||||
|
|
Loading…
Reference in a new issue